代码之家  ›  专栏  ›  技术社区  ›  Victor

asp.net资源定制

  •  1
  • Victor  · 技术社区  · 12 年前

    我们的网站(ASP.NET 4.0)大量使用 meta:ResourceKey 在每个控件中,您可以在页面上看到几乎所有的东西,并且是从客户端到客户端自定义的。但问题是,有时需要从一个客户端到另一个客户端对资源进行定制。例如,如果资源文件中有此字符串 Label1ResourceText.Text = 'Welcome to Customer1 site' 则需要将其更改为 Label1ResourceText.Text = 'Welcome to Customer2 site' 当我们安装Customer2版本时,应用程序的英文版和本地化资源版都有。我想知道是否可以在每个客户之间以编程或声明的方式进行最少的定制工作,而不必为每个客户手动编辑或生成不同的资源文件。 谢谢你的建议。

    2 回复  |  直到 12 年前
        1
  •  1
  •   Maciej    12 年前

    无论您使用单个文件还是多个文件,如果您采用单个文件方法,您的网站仍必须确定使用哪个文件或使用哪个密钥。

    除此之外,您还必须使用两个单独的文件。

    另一种选择是在resources文件夹中添加一个资源文件,比如UIStrings.resx。然后可以将以下字符串存储在资源文件中

    WeclomeMessage=“欢迎访问{0}网站”

    然后可以使用渲染字符串

    Label1.Text = String.Format(Resources.UIStrings.WelcomeMessage, CustomerName);
    

    在后面的代码中。

    作为代码隐藏方法的替代方案

    <asp:Label Text="<%= String.Format(Resources.UIStrings.WelcomeMessage, CustomerName)%>" />
    

    This link 有一些关于如何利用资源文件的好信息。

        2
  •  0
  •   Alex Dn    12 年前

    看看 http://msdn.microsoft.com/en-us/library/ms227982(v=vs.100).aspx 。您可以使用不同的resx文件,并根据您的业务逻辑以编程方式调用它们。