【问题标题】:How do I load an ErrorMessage on a CustomValidator from a resource file?如何从资源文件中在 CustomValidator 上加载 ErrorMessage?
【发布时间】:2012-08-29 14:53:56
【问题描述】:

我想从资源文件中为我的CustomValidator 加载ErrorMessage

我的CustomValidator 设置如下:

<asp:CustomValidator ID="cv1" runat="server" ControlToValidate="txt1" 
        ErrorMessage="TEXT TO BE LOCALIZED" OnServerValidate="cv1_Validate" />

而我的验证方法如下:

protected void cv1_Validate(object source, ServerValidateEventArgs e)
{
    if (FalseCondition)
    {
        e.IsValid = false;
    }
    else
    {
        e.IsValid = true;
    }
}

验证工作正常,但我希望从我的本地资源文件中提取 ErrorMessage

编辑:我也很好奇是否有任何方法可以使用meta:resourcekey

【问题讨论】:

    标签: c# asp.net globalization


    【解决方案1】:

    假设您的页面(或控件)有本地资源,这就是实现它的方法

    ErrorMessage="<%$ resources:ResourceName %>"
    

    如果您从全局资源文件中获取文本,您应该这样做

    ErrorMessage="<%$ resources:Strings, ResourceName %>"
    

    其中Strings 是文件名。这种方法称为显式本地化。

    编辑

    您可以使用meta:resourcekey。这称为隐式本地化。您需要拥有本地资源,因为这种方法对全局资源无效。

    1. 确保您拥有符合以下条件的本地资源文件(.resx 文件):

      • 它们位于 App_LocalResources 文件夹中。

      • 基本名称与页面名称匹配。

      例如,如果您正在使用名为 Default.aspx 的页面,则资源文件名为 Default.aspx.resx(用于默认资源)、Default.aspx.es.resx、Default.aspx.es-mx .resx 等等。

      • 文件中的资源使用命名约定resourcekey."property"。

      例如键名Button1."Text"。

    2. 在控件标记中,添加隐式本地化属性。

      例如:

    来源:MSDN

    【讨论】:

      【解决方案2】:

      如果您想在代码隐藏中执行此操作,可以使用以下代码:

      ResourceManager resmgr = new ResourceManager("YourApplication.YourBaseResourceFile ", 
                                    Assembly.GetExecutingAssembly());
      
      protected void cv1_Validate(object source, ServerValidateEventArgs e) 
      {   
      
      if (FalseCondition)  
         {  
             CultureInfo ci = Thread.CurrentThread.CurrentCulture;    
             String str = resmgr.GetString("Error Msg Key in Resource File");
             cv1.ErrorMessage =str;      
             e.IsValid = false; 
          }     
      else   
        {   
           e.IsValid = true;  
         } 
      } 
      

      【讨论】:

        猜你喜欢
        • 2010-11-13
        • 2021-03-06
        • 2013-03-22
        • 2010-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-29
        相关资源
        最近更新 更多