2014-01-15 48 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调用,以在页面加载时拉下这些东西。

[捂脸]

相关问题