ASP Net MVC - 验证消息的本地化

2024-03-05

我在我的 asp net mvc 5 应用程序中遇到了验证消息本地化的问题。

我用它来本地化:

路线配置:

[Internationalization]
public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute("DefaultLocalized",
        "{language}-{culture}/{controller}/{action}/{id}",
        new
        {
            controller = "Home",
            action = "Index",
            id = "",
            language = "de",
            culture = "DE"
        });

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

本地化属性:

 class InternationalizationAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string language = (string)filterContext.RouteData.Values["language"] ?? "de";
        string culture = (string)filterContext.RouteData.Values["culture"] ?? "DE";

        Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
        Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
    }
}

模型属性示例:

    [Display(Order = 0, ResourceType = typeof(resourceProjectName.ApplicationStrings), Name = "LabelText")] // this works
    [Required(ErrorMessageResourceType = typeof(resourceProjectName.ApplicationStrings), ErrorMessageResourceName = "ValidationText")] //this does not work
    public string Property { get; set; }

HTML 示例:

这是在 Html.BeginForm 内部。如果某些内容丢失或无效,则会在 POST 请求后显示验证消息。

<div>
<div class="form-group row">
    <div>
        @Html.LabelFor(x => x.Property)
    </div>
    <div class="col-sm-6">
        @Html.TextBoxFor(x => x.Property, new { @class = "form-control" })
    </div>
    @if (ViewData.ModelState.Where(i => i.Key.Equals("Property")).Any(x => x.Value.Errors.Any()))
    {
        <div class="col-sm-6">
            @Html.ValidationMessageFor(x => x.Property, "", new { @class = "alert-validation alert-danger" })
        </div>
    }
</div>
</div>

网页配置:

<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>

本地化适用于网站上除验证消息之外的所有内容。

它始终显示与浏览器语言设置,尽管用户导航到例如:site.de/en-EN/test。

web.config有问题吗?我尝试将enableClientBasedCulture设置为false,但问题仍然出现。

亲切的问候, 马丁


我在这里找到了解决我的问题的方法:http://afana.me/post/aspnet-mvc-internationalization.aspx http://afana.me/post/aspnet-mvc-internationalization.aspx

我所做的是删除我的“国际化”属性并创建一个“BaseController”类,该类基本上与每个请求上的“国际化”属性执行相同的操作。

基本控制器:

 public class BaseController : Controller
{
    protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
    {
        //Localization in Base controller:

        string language = (string)RouteData.Values["language"] ?? "de";
        string culture = (string)RouteData.Values["culture"] ?? "DE";

        Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
        Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));


        return base.BeginExecuteCore(callback, state);
    }
}

本地化现在适用于标签和验证消息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP Net MVC - 验证消息的本地化 的相关文章

  • 为什么不能使用initializer_list来初始化unique_ptr的向量? [复制]

    这个问题在这里已经有答案了 我想知道为什么initializer list 不能与unique ptr 一起使用 std vector
  • 无法在表适配器配置属性中找到对象“Web.config”的连接“MyConnName”

    I want to change the query in table adapter but it s not opening throwing an error Configure table Adapter Failed in pro
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 使用 pthread_cond_signal 优雅地终止线程被证明是有问题的

    我需要发射一堆线程 并希望优雅地将它们拉下来 我正在尝试使用pthread cond signal pthread cond wait实现这一目标 但遇到了问题 这是我的代码 首先是thread main static void thrma
  • 多步ActiveRecord的模型验证

    考虑具有以下字段的用户模型 名字 必填 姓氏 必填 电子邮件 必填 要求输入密码 电话 必填 大小 10 位数字 地址 必填 以及包含以下步骤的多步骤注册表单 第一步 包含 名字 姓氏 和 电子邮件 字段 第二步输入密码 电话和地址 您将如
  • 是否返回 std::move (x)?

    Are std vector
  • 如何(可移植地)在 C 和 C++ 中获取 DBL_EPSILON

    我正在 Linux AS 3 上使用 GCC 3 4 并试图找出DBL EPSILON 或者至少是一个不错的近似值 我怎样才能以编程方式获取它 在 C 中是std numeric limits
  • 如何实现可变虚拟成员函数

    所以我有这个功能 virtual void CallRemoteFunction const char pServerGameObjectId const char pFunctionName OVariant arg1 OVariant
  • 在 C++ 中初始化指针

    可以在声明时将指针分配给值吗 像这样的东西 int p 1000 是的 您可以在声明时初始化指向值的指针 但是您不能这样做 int p 1000 是个地址运算符 并且您不能将其应用于常量 尽管如果可以 那会很有趣 尝试使用另一个变量 int
  • 使用 C# 和 .NET Core 在 AWS Cognito 用户池中进行用户管理

    如何使用 C 和 NET Core 3 x 管理 AWS Cognito 用户池中的用户 在文档中找不到有关它的任何内容 Attilio Gelosa 的原创文章 我写这篇文章是希望对其他人有帮助 我必须阅读一页又一页的文档 并从 AWS
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 当 C 中没有足够的内存用于静态分配时会发生什么?

    当您动态分配内存时 例如malloc 1024 sizeof char 结果指针设置为NULL如果没有足够的可用内存来满足请求 当没有足够的内存来满足静态分配时会发生什么 例如char c 1024 char c 1024 不一定是静态分配
  • 如何使breezejs所需的验证器允许空字符串

    在breezejs中允许所需属性中存在空字符串的首选方式是什么 I found 这个答案 https stackoverflow com questions 19658297 how does breeze saves empty stri
  • ASP.NET MVC 视图引擎解析顺序

    我创建了一个简单的 ASP NET MVC 1 0 版应用程序 我有一个 ProductController 它有一个操作索引 在视图中 我在Product子文件夹下创建了相应的Index aspx 然后我引用了 Spark dll 并在同
  • asp.net MVC 1.0和2.0货币模型绑定

    我想创建模型绑定功能 以便用户可以输入 等等 用于绑定到我的 ViewModel 的双精度值的货币值 我能够在 MVC 1 0 中通过创建自定义模型绑定器来执行此操作 但是自从升级到 MVC 2 0 后 此功能不再起作用 有谁有任何想法或更
  • C# 或 Windows 相当于 OS X 的 Core Data?

    我迟到了 现在才开始在 OS X Cocoa 中使用 Core Data 它令人难以置信 并且确实改变了我看待事物的方式 C 或现代 Windows 框架中是否有等效的技术 即拥有可免费保存 数据管理 删除 搜索的托管数据类型 还想知道Li
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • 使用 QTestLib 时抑制 qDebug

    我正在向 Qt 中的项目添加单元测试 并希望使用 QTestLib 我已经设置了测试并且它们运行良好 问题是在项目中我们重写了 qDebug 以输出到我们自己的日志文件 这在运行应用程序时效果很好 问题是当我测试类时 它有时会开始记录 然后

随机推荐

  • .NET 中是否有热插拔的参考实现?

    我正在寻找在 NET 中完成热交换的良好实现 我需要的东西是 能够将 DLL 部署到特定文件夹中并让正在运行的系统拾取它们 让正在运行的系统更新容器中的相应引用 我一直在研究MEF及其目录加载机制 但它似乎非常不可靠 也许有人有替代的实现
  • 相当于 conda 的 apt-get install python3.6-dev

    如何使用开发版本的python创建conda环境 或者当我创建一个时它是否已经包含所有必要的扩展 conda create n py36 python 3 6 conda search python最高版本为 3 6 5 因此我认为只能通过
  • Bootstrap Sass Rails 4 自定义样式

    我正在尝试使用 bootstrap 自定义 Rails 应用程序的样式变量较少可用的here http getbootstrap com customize 我正在使用引导 Sass https github com twbs bootst
  • 如何在 numpy 中进行分散/聚集操作

    可以说我有数组 a array 1 2 3 4 5 indices array 1 1 1 1 我执行操作 a indices 1 结果是 array 1 3 3 4 5 换句话说 重复项indices被忽略 如果我希望重复项不被忽略 结果
  • 如何在 Swift 中将 UInt8 字节数组转换为字符串

    我在转换时遇到问题UInt8swift 中的字节数组到字符串 我已经搜索并找到了一个简单的解决方案 String stringWithBytes buff encoding NSUTF8StringEncoding 但它显示错误String
  • IllegalArgumentException:不支持的 ABI:Android 5.0 上的 VMRuntime.getInstructionSet() 中为 null

    在我们最近更新后 在 Google Play Console 上看到我们 Unity 制作的游戏发生崩溃 超过 99 的情况发生在 Android 5 0 上 我猜这与 WebView 有关 并看到了这个相关帖子 https bugs ch
  • 尝试在 h5py 中打开 pandas 创建的 hdf 时缺少列

    这就是我的数据框的样子 第一列是一个整数 第二列是 512 个整数的单个列表 IndexID Ids 1899317 0 47715 1757 9 38994 230 12 241 12228 22861131 0 48156 154 63
  • 配置android EditText以允许小数和负数

    我有一个安卓EditText我想让数字键盘出现 如果我将 android inputType 设置为 numberSigned 我将获得数字键盘并能够输入负数 然而 这不会让我使用小数 如果我使用 numberDecimal inputTy
  • 单元测试中用于检查代码覆盖率的反思

    这是场景 我有 VO 值对象 或 DTO 对象 它们只是数据的容器 当我将它们分开并保存到数据库 由于很多原因 无法优雅地映射到 VO 时 我想测试每个字段是否已在数据库中成功创建并成功读回重建 VO 有没有办法可以测试我的测试是否涵盖了
  • R - geom_密度()使用什么算法以及如何提取曲线的点/方程?

    我想知道 geom 密度 到底在做什么 所以我证明了该图的合理性 以及是否有任何方法可以提取为绘制的每条曲线生成的函数或点 Thanks Typing get compute group ggplot2 StatDensity 或者 以前
  • python和mysql中的矩阵乘法

    我有一本货币兑换字典 如下 exchange rates USD 1 00000 EUR 1 32875 GBP 1 56718 然后我使用以下方法检索产品的销售信息 SELECT price currency FROM sales 可能有
  • 在 Vaadin 视图中显示 PDF

    我想在 Vaadin 视图中显示 PDF 我创建一个 BrowserFrame 并传递 PDF 的 StreamResource StreamResource streamResource new StreamResource getPre
  • 使用Haskell的map函数计算列表的总和

    Haskell addm Int gt Int addm x xs sum x xs 我能够使用以下方法获得列表的总和sum函数 但是是否可以使用以下方法获得列表的总和map功能 还有地图功能有什么用 你不能真正使用map总结一个列表 因为
  • Java 能识别无限循环吗?

    给出以下代码示例 public class WeirdStuff public static int doSomething while true public static void main String args doSomethin
  • 具有相同 crs、范围、维度、分辨率的栅格不对齐

    我正在查找枫糖浆每年的平均生产天数 我的 Maple 分布数据位于 ascii 文件中 我有一个名为的栅格 从 NetCDF 文件创建 brick Tmax 我想要匹配的规格brick Tmax我的枫树分布数据 These are the
  • 在C中创建文件头(文件的元数据)

    文件头包含有关文件的所有数据 mdash 元数据 我想创建一个带有元数据的空白文件 然后我想将其他文件内容添加到这个空白文件中 并且需要更改 修改 元数据 C语言中有没有用于创建文件头的库 如何用C语言读取 写入文件头 metadata f
  • 在 Visual Studio 中调试 AngularJS(不是在 VS Code 中)

    有没有办法在 Visual Studio 中调试 AngularJS 代码 Note 我不是在谈论 VS Code 我希望能够设置断点并查看那里发生了什么 我知道其他 IDE 可以让我们做到这一点 那么可以使用 Visual Studio
  • 在写入文件之前格式化 JSON

    目前我正在使用杰克逊 JSON 处理器 https web archive org web 20150315020718 http jackson codehaus org 将首选项数据等写入文件主要是因为我希望高级用户能够修改 备份这些数
  • 使用随机整数创建 numpy 数组,每行具有另一个范围

    我需要制作快速的 numpy 数组 在每一行中生成具有不同范围的随机整数 我可以使用的代码 但当我将向量数量增加到 300000 时速度很慢 import numpy as np import random population size
  • ASP Net MVC - 验证消息的本地化

    我在我的 asp net mvc 5 应用程序中遇到了验证消息本地化的问题 我用它来本地化 路线配置 Internationalization public class RouteConfig public static void Regi