2014-01-15 45 views
2

背景您可以使用.RESX文件本地化一個.HTML文件嗎?

我有一個ASP.NET Web窗體應用程序,我想本地化使用.RESX文件。我已經知道如何使用.ASPX文件來做到這一點。但是,我的應用程序使用一些.ASPX文件... 以及一些簡單的.HTML文件。

(我做了很多KnockoutJs,其中應用程序檢索可重複使用的HTML模板,並根據需要將它們注入DOM的。)

我不能在HTML文件中的以下方法,因爲<%$代碼將不會被執行。

<%$ Resources:Main, WelcomeMessage %> 

問題

是否可以使用C#代碼來處理對一個RESX文件來生成已本地化的HTML文件一個純HTML文件?

(我需要一個解決方案,而無需使用.aspx文件)

如果這是可能的,那麼我也許能創建將應用RESX文件,HTML文件,並返回結果HTML Web服務串。

回答

1

回答

我想答案是....

似乎有沒有一種簡單的方法與ASP.NET Web窗體做到這一點位。所以相反,我將我的項目切換到使用ASP.NET MVC ....這個問題更容易解決。

如果你有興趣......這裏就是我在MVC做:

我改變了HTML文件.cshtml文件(支持語法與.resx文件有效)。我創建了一個我使用GetHtml操作調用HtmlController的控制器。 GetHtml方法將URL作爲參數,並呈現請求的.cshtml文件的內容,該文件作爲PartialView返回。

現在我的頁面加載後,我可以通過調用HtmlController上的GetHtml操作來觸發Ajax請求來檢索一些共享的HTML模板。我請求的.cshtml文件的HTML內容針對我的.RESX文件進行了本地化,然後作爲我的Ajax調用的結果返回。然後我可以將它綁定在頁面上。

這對於我在各種頁面上重複使用的共享HTML模板特別有效,但我仍然需要將它們本地化爲當前選定的文化。

回想起來

我還是覺得移動到MVC是正確的決定。

但是......我想在切換到MVC之後....在每個需要訪問它們的頁面上直接渲染部分視圖(對於每個共享模板)可能會更簡單。

然後,我可以避免做出單獨的Ajax調用,以在頁面加載時拉下這些東西。

[捂臉]

相關問題