【问题标题】:How to replace the default ModelState error message in Asp.net MVC 2?如何替换 Asp.net MVC 2 中的默认 ModelState 错误消息?
【发布时间】:2009-10-08 16:17:09
【问题描述】:

我需要将模型状态资源替换为另一种语言。

我已经看到了上述问题的一些答案,但不幸的是我无法让它发挥作用。 任何详细的答案或例子都会被应用。

谢谢。

【问题讨论】:

    标签: asp.net-mvc file resources modelstate


    【解决方案1】:

    我不知道 v2,但这适用于 v1:

    1. 在 App_GlobalResources 中添加资源文件。
    2. 在资源文件中,您可以定义名为PropertyValueInvalidPropertyValueRequired 的字符串。
    3. 关于 Application_Start global.asax 事件集 System.Web.Mvc.DefaultModelBinder.ResourceClassKey = "resource file name"

    【讨论】:

    • 感谢您的回答,但由于某种原因它不起作用。也许在 mvc 2 上有不同的方法。
    • 您可以使用Reflector找到。
    【解决方案2】:

    知道了。

    在 ASP.NET MVC 2 RC 中,它是 PropertyValueInvalid,而不是 InvalidPropertyValue

    【讨论】:

      【解决方案3】:

      尝试使用: 不带星号“*”。

      【讨论】:

      • 我认为这是最好的方法。 (+1)。用户消息属于视图,不属于控制器。如果将来您想用另一种语言创建相同的页面,您将保留相同的控制器并仅更改视图。
      【解决方案4】:

      辛西娅,试着把它添加到你的 web.config 中

        <compilation debug="true" targetFramework="4.0">
            <buildProviders>
              <add extension=".resx" type="System.Web.Compilation.ResXBuildProvider"/>
              <add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider"/>
            </buildProviders>
        </compilation>
      

      MVC 调用httpContext.GetGlobalResourceObject(ResourceClassKey, "InvalidPropertyValue", CultureInfo.CurrentUICulture) 来查找消息,有时您必须将这些提供程序添加到 GetGlobalResourceObject 以查找正确的资源

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 2016-12-22
        • 1970-01-01
        • 2013-07-11
        相关资源
        最近更新 更多