2010-03-30 51 views
1

我在嘗試將ASP.NET Web應用程序轉換爲使用資源文件。我之前沒有使用資源文件,所以我只是在和他們一起玩,並且想知道這是否可能。在資源文件中處理服務器端代碼和html的混合?

我有一條消息,當搜索結果沒有找到時會返回搜索結果,提示用戶返回主頁。很多這些網頁上的方法來確定什麼是正確的頁面發送用戶,所以有與標記類似這樣的很多路段:

抱歉,我們無法找到符合搜索條件的項目 標準。

請調整您的搜索條件或<a href="<%= SomeMethodToDetermineUri() %>">返回 至(SomePage)</a>

所以基本上,某種類型的消息,後面跟着一個鏈接或一個鏈接列表。獲取消息部分工作正常,它是服務器端代碼來生成問題的鏈接。

什麼是將其放入資源文件的最佳方法是什麼?它能夠很好地識別html鏈接部分,但服務器端代碼被插入爲純文本。

將其分解爲2個資源的唯一方法是? (這似乎凌亂)

<%= Resources.Master.NoSearchResultsFound %> 
<a href="<%= SomeMethodToDetermineUri() %>"> 
    <%= Resources.Master.NoSearchResultsFoundReturnLinkText %> 
</a>. 

或者有沒有辦法讓頁面評估服務器代碼?

回答

1

呸,我忘了我的老朋友String.Format

<%= String.Format(Resources.Master.NoSearchResultsFound, SomeMethodToDetermineUri() %> 

工作完全正常。

然後在資源文件中的值只是

抱歉,我們無法找到符合搜索條件的內容。

請調整您的搜索條件或<a href="{0}">return to (SomePage)</a>

1

如果您的網站上有類似的功能,我建議使用用戶控制或母版頁來處理您正在嘗試執行的操作。我相信資源更適用於項目之外的文件。

+0

功能和消息不完全相同,這是一個例子。當我說他們是相似的,我的意思是在整個項目中使用(一些文本)塊(一些服務器端代碼來生成鏈接)(更多文本)。這是服務器端代碼的一部分,這是一個在路上的衝擊,以定製消息給用戶。對不起,我已經更新了這個問題。 – Brandon 2010-03-30 19:19:43

+0

我想我很困惑。爲什麼不直接使用asp:Literal標籤並在App_Code中創建一個可以爲您完成所有工作的類? – 2010-03-30 19:25:35

+0

現在好了,我很困惑:P如何使用文字控件幫助我?我仍然將兩種資源和一種方法混合在一起來生成url,我只是在不同的地方做這件事。 – Brandon 2010-03-30 19:34:55

1

您不想將任何類型的代碼放入資源文件中。即使你覺得它很混亂,你的解決方案是正確的。

您可以做的唯一的其他事情就是將其封裝在用戶控件中。用戶控件將獲取資源並因此隱藏頁面上的混亂。

+0

+1,usercontrol會工作,問題是這是一個非常大的Web應用程序。不得不爲每個部分製作一個用戶控件並不好玩。 :P – Brandon 2010-03-30 19:41:34

+0

@Brandon:假裝你寫了所有這些控件。現在,他們之間有什麼區別?例如,是否可以將某些差異分解爲屬性?也許給用戶控件一個屬性標籤資源的名稱和一個資源在''標籤中使用。那麼你只有一個控制。 – 2010-03-30 19:44:13