【问题标题】:ASP.NET: How to pass a value to a string from a local resource?ASP.NET:如何将值从本地资源传递给字符串?
【发布时间】:2012-04-13 19:01:26
【问题描述】:

我创建了一个名为 server.aspx 的网页和名为 server.aspx.resx 的相关本地资源文件。在资源文件中,我定义了消息“需要 {0}”。与关键错误。

在我的 .aspx 页面中,我访问字符串:

<asp:RequiredFieldValidator ControlToValidate="textboxName" runat="server" ErrorMessage="<%$ Resources:Error %> ID="validatorName">

现在我想向资源字符串传递一个值,例如文本框“名称”的名称,以便错误消息为“需要名称”。

是否有可能将值传递给字符串?

托本

【问题讨论】:

    标签: .net asp.net


    【解决方案1】:
    string message = GetFromResourceFile();
    string completeMessage = string.Format(message, "Name");
    

    【讨论】:

    • 好的,但这只有在后面的代码中才有可能?但是如何在 .aspx 页面中做到这一点?
    【解决方案2】:
    <asp:RequiredFieldValidator 
        ControlToValidate="textboxName" 
        runat="server" 
        ErrorMessage="<%$ string.Format(Resources:Error, 'textboxName') %> 
        ID="validatorName">
    

    或者您可以在后面的代码中尝试以下...

    validatorName.ErrorMessage = string.Format(Resources.Error, "textboxName");
    

    【讨论】:

    • 当我尝试这种方式时,我收到错误消息,服务器标签格式不正确。
    • 尝试使用单引号,即 ErrorMessage=''
    • 没用。使用单引号我得到错误“表达式前缀'string.Fornat(资源'未被识别。”
    • 以其他方式尝试单引号,即 ErrorMessage=" %> ID="validatorName"
    【解决方案3】:

    根据http://msdn.microsoft.com/en-us/library/fw69ke6f(v=vs.80).aspx

    应该是

    <asp:RequiredFieldValidator ControlToValidate="textboxName" runat="server" ErrorMessage="<%$ Resources:ResourceFileName, Error %> ID="validatorName">
    

    其中 ResourceFileName 是您的资源文件的名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 2023-02-22
      • 1970-01-01
      相关资源
      最近更新 更多