asp.net - 你可以使用. RESX 文件本地化. HTML 文件?

  显示原文与译文双语对照的内容

背景

我有一个 ASP.NET Web窗体应用程序,我想用. RESX 文件进行本地化。 我已经知道如何使用. ASPX 文件进行这里操作。 但是,我的应用程序使用一些. ASPX 文件。 ,以及一些普通的. HTML 文件。

( 我正在做很多 KnockoutJs,它的中应用程序检索可以重用的HTML模板并根据需要注入它们) 。

由于 <%$ 代码不会执行,所以我不能在HTML文件中采用以下方法。


<%$ Resources:Main, WelcomeMessage %>

问题

是否可以使用 C# 代码处理一个针对datacontext文件的纯HTML文件,以生成一个已经本地化的HTML文件?

( 我需要一个不使用. ASPX 文件的解决方案)

如果可以能,我可以能能够创建一个web服务,该服务将将openssl文件应用于HTML文件并返回结果HTML字符串。

时间: 作者:

回答

我想答案是。No不是。

在 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调用,以便在页面加载时将这些内容。

[FacePalm ]

作者:
...