2012-05-23 94 views
0

我在尋找以下問題的一個很好的解決方案:顯示在MVC視圖可變文本

我有一個ASP.NET MVC web應用,由幾個我的客戶使用。在應用程序中,客戶可以登錄,查看包含信息的多個頁面並填寫多種表格。這一切都很好。

但是,我想要的是在視圖中顯示不同的文本,具體取決於客戶端的屬性(本例中爲A類型)。這些文本可以是多語言的,用戶可以在應用程序中更改語言。

我已經想出了幾個解決方案,但我不確定最好的想法是什麼。這是我的想法而已:

保存在數據庫

信息在這種情況下,我將創建一個表(如「ProgramTexts」),用一個密鑰,客戶端的類型,語言和文本它自己。在我的控制器中,我會檢索在該視圖中使用的Keys,將它們設置在ViewModel中並將該視圖模型傳遞給視圖。在視圖中,我可以很容易地在ViewModel中顯示給定變量的值。

我認爲這對於一個小網站來說很好,但是對於許多不同的控制器和視圖來說似乎有點粗糙。我寧願直接從視圖中調用文本,但從視圖中調用數據庫並不會更好。

資源文件

我其他的想法將被使用,因爲在本地化功能構建的資源文件。但我不確定如何從一個資源中檢索一個變量,這個變量是基於一個額外的變量(這種情況下的類型)。

有沒有人有關於如何實現這一目標的另一個想法?

+0

我的投票是資源文件,應用程序的性能更好 –

回答

0

我會去資源文件選項。是否有可能爲這些類型提供不同的資源文件?或者是否有可能爲不同類型使用不同的變量名稱?

Message1_TypeA 
Message2_TypeB 

然後你可以使用一些聰明的技巧來讀取根據類型進行正確的消息,一個巧招如反射可能。

另一種選擇可能是分隔該字符串從而

消息1 = 「A | B | C | d」;

這樣您可以檢索所有類型的消息,然後在代碼中檢索當前類型的正確消息。我解釋得好嗎?我不認爲我做過。

+0

我終於選擇了資源文件選項。我還發現了創建自定義資源提供程序的功能,並且我正在測試它是如何工作的。 – Pbirkoff