ASP.NET MVC 3:- 使用数据库而不是资源文件作为本地化存储

2023-11-21

我们在数据库中有本地化的字符串,想知道是否扩展 ASP.NET 资源提供程序模型可与 ASP.NET MVC 3 Razor 视图引擎配合使用。

请告诉我,一旦我们扩展了 ASP.NET 资源提供程序模型,ASP.NET MVC 3 Razor 视图引擎是否支持从数据库检索本地化字符串。或者它仅适用于经典 ASP.NET 而不适用于 ASP.NET MVC。

谢谢

萨蒂亚普拉卡什·J


迄今为止我发现的最干净的解决方案是:http://www.codeproject.com/Tips/514321/A-Simple-and-Effective-Way-to-Localize-ASP-Net-MVC.

欢迎评论/反馈。

Edit 1:根据评论,我添加了代码示例并使用链接作为参考。

我创建了一个 customDataAnnotationsProvider 类:

public class CustomDataAnnotationsProvider: DataAnnotationsModelMetadataProvider
{
    private ResourceManager resourceManager = new ResourceManager();
    protected override ModelMetadata CreateMetadata(
                         IEnumerable<Attribute> attributes,
                         Type containerType,
                         Func<object> modelAccessor,
                         Type modelType,
                         string propertyName)
    {
        string key = string.Empty;
        string localizedValue = string.Empty;


        foreach (var attr in attributes)
        {
            if (attr != null)
            {
                if (attr is DisplayAttribute)
                {
                    key = ((DisplayAttribute)attr).Name;
                    if (!string.IsNullOrEmpty(key))
                    {
                        localizedValue = resourceManager.GetLocalizedText(key);
                        ((DisplayAttribute)attr).Name = localizedValue;
                    }
                }
                else if (attr is ValidationAttribute)
                {
                    key = ((ValidationAttribute)attr).ErrorMessage;
                    if (!string.IsNullOrEmpty(key))
                    {
                        localizedValue = resourceManager.GetLocalizedText(key);
                        ((ValidationAttribute)attr).ErrorMessage = localizedValue;
                    }
                }
            }
        }
        return base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
    }
}

然后我在 Global.asax 中引用了 ApplicationStart 上的自定义提供程序

ModelMetadataProviders.Current = new Project.Web.Helpers.CustomDataAnnotationsProvider();

您不必更改模型并可以使用 Display 注释:

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

ASP.NET MVC 3:- 使用数据库而不是资源文件作为本地化存储 的相关文章

  • 验证日期格式不起作用

    我在日期验证方面遇到问题 在我的视图中 我有一个 jQuery 日期选择器 我更改了格式yy mm dd to mm dd yy现在我收到客户端验证错误 例如 The value 02 25 2014 is not valid for Da
  • 使用资源文件进行本地化不起作用

    我添加了新的 Rosource 文件 UserNotification resx 然后我添加了两个文件进行本地化 并将其命名为 UserNotification hr HR resx 和 UserNotification sl SI res
  • 如何在 MVC 3 Razor 中显示解码后的编码 HTML?

    我在 MVC 3 和 Asp net C 中使用 Razor 我有一个带有以下代码的视图 model ContentBody有一些 HTML 标签 我需要将此 HTML 内容显示为DECODED 我该如何更改视图中的代码 div class
  • app-localize-behavior 和共享本地化缓存

    根据聚合物文档应用程序本地化行为 https www polymer project org 1 0 toolbox localize 每个显示要本地化内容的元素都应添加 Polymer AppLocalizeBehavior 所有这些元素
  • 如何编写对 UTF-8 安全的代码?

    我们有一组针对 ASCII 字符集开发的应用程序 现在 我们正尝试在冰岛安装它 但遇到了冰岛字符被搞砸的问题 我们正在解决我们的问题 但我想知道 是否有一个好的 指南 来编写专为 8 位字符设计的 C 代码 并且在提供 UTF 8 数据时可
  • MVC 删除记录但如何在控制器中对此进行编码

    我是使用 ASP Net C 的 MVC3 初学者 但我没有遇到下一种删除记录的情况 我有一个视图要求用户确认删除项目 记录 作为代码 我用它来初始化视图 public ActionResult KeywordsDelete Guid id
  • ASP.NET MVC - 授权属性登录重定向后保留 POST 数据

    我有一个带有评论的博客文章页面 任何用户 无论是否登录 都可以在页面底部看到一个表单来发表评论 当用户输入评论且未获得授权时 用户将被重定向到登录 注册页面 登录后 用户将被重定向回操作 但包含评论正文的 POST 数据会丢失 我使用 AS
  • 如何使用 MVC 属性验证列表是否具有大于零的非空元素?

    我正在尝试实现一个可以获取不同数量的文件的文件上传器 文件输入元素的名称都相同 因此会生成 MVC3 乐意绑定的文件列表 所以在我的控制器中我有 public virtual ViewResult UploadReceive IEnumer
  • WPF XAML 绑定和 CurrentCulture 显示

    当 CurrentCulture 更改时 我发现 XAML 文档出现一些无效行为 当我在窗口中有一些这样的元素时
  • 从 MVC 视图中的模型访问 displayName 属性

    如果我的模型有 DisplayName First Name public string firstName get set 然后我可以用 LabelFor 在视图中打印它 Html LabelFor model gt model acc
  • Web API 和 ASP MVC 之间的主要区别是什么

    标题确实总结了我的问题 我已经使用了这两种技术 但我不确定其中一种技术与另一种技术有何显着不同 在本质上 在设计一个宁静的 Web 应用程序时 选择 ASP MVC 或 Web API 时应考虑哪些标准和 或指南 Purpose ASP N
  • 在 xcode 中,有没有办法验证所有 NSLocalizedStrings 的密钥?

    除了运行其中包含 NSLocalizedString 的每个代码路径之外 是否有一种方法可以验证所有 NSLocalizedString 是否都具有实际存在于所有捆绑包的所有 Localized strings 文件中的密钥 例如 一个键中
  • System.Web.Mvc.HtmlHelper 不包含以下定义

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 关于编辑可变长度列
  • ASP.NET MVC 3 Razor DisplayFor 委托

    我收到此错误 模板只能与字段访问 属性访问 一维数组索引或单参数自定义索引器表达式一起使用 这是我的代码 自定义 HTML 帮助程序 包装 DisplayFor 以便我可以选择模板 public static string DisplayL
  • ModelBinding asp.net MVC 列表

    我有以下课程 public class Movie string Name get set string Director get set IList
  • 如何使用存储在 Cocoa Touch 框架中的 Localized.strings?

    我想为 CocoaTouch 框架添加多语言支持 问题 可本地化的字符串我创建的文件仅被使用NSLocalizedString当它是主应用程序及其目标的一部分时 我想将其存储在框架内以将事物分开 我怎样才能使用可本地化的字符串当放置在 Co
  • Razor 如何创建一个复选框并使其只读?

    我正在使用 MVC 3 和 Razor 目前我正在使用 model MyProject ViewModels MyViewModel foreach var item in Model MyProperty tr td Html Actio
  • 如何使用 DropDownListFor

    我想向网页添加下拉列表 html 控件 并用产品列表填充它 我的动作控制器看起来像 public ActionResult Index return View repository GetProducts true 产品模型 Linq to
  • string.Compare 行为

    怎么会这样呢 这是从VS2008中的立即窗口获取的 string Compare 1 string Compare 0 0 1 从言论来看字符串比较 http msdn microsoft com en us library 84787k2
  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码

随机推荐

  • MySQL 提交和事务

    我有一个关于 MySQL 提交和事务的问题 我有几个执行 MySQL 查询的 PHP 语句 我只说下面这些吗 mysql query START TRANSACTION more queries here mysql query COMMI
  • 在 Apache 中处理 CORS 预检请求

    我有一个使用 Yeoman 部署的 AngularJS 应用程序 Cakephp RESTful 后端 Angular 应用程序发送 OPTIONS 预检请求 后端以禁止 403 响应 在 nginx 中为了解决这个问题我使用了这个 if
  • 如何最好地处理构造函数中的异常?

    如何在构造中以最好的方式处理异常 option1 捕获创建对象的异常 class Account function construct id if empty id throw new My Exception id can t be em
  • ggplot2中的默认线型?

    我在这里努力找出 ggplot2 中使用的默认线型 我有一个数据框如下 test lt structure list time c 151 04167175293 151 125015258789 151 20832824707 151 2
  • 为什么涉及虚拟继承时不能使用static_cast向下转型?

    考虑以下代码 struct Base struct Derived public virtual Base void f Base b new Derived Derived d static cast
  • 在远程Linux主机上执行本地脚本

    我有一个本地脚本 如果没有远程主机上的 root 权限 该脚本将无法运行 我已编辑并允许 sudoers 文件从主目录 home username script 运行脚本 该脚本使用结果创建一个 txt 文件 但我将输出重定向到终端 并将输
  • 使用 msbuild 从命令行创建应用程序包

    我可以使用向导从 Visual Studio 2013 创建应用程序包 结果文件是MyProject Win8 1 1 1 3 x86 x64 arm bundle appxupload 这很好 我可以使用以下命令来构建 appxuploa
  • “__MSG_@@extension_id__”不起作用,并且网络字体无法加载

    我正在开发一个 Google Chrome 扩展 它将样式表注入到我定义的特定网站中manifest json 样式表中包含网络字体 font face and src url chrome extension MSG extension
  • 通过 git hook 缩小 CSS 文件

    我的理想情况是自动缩小 CSS 文件并将它们添加到 git 提交中 我不确定是否可以完成下面的 4 但我希望执行以下流程 修改CSS文件 添加到暂存区 Commit 运行更新缩小文件并将其添加到提交的脚本 提交完成 如果有其他方法 我也会对
  • 在 JavaScript 中删除对象

    我对 JavaScript 有点困惑delete操作员 采取以下代码 var obj helloText Hello World var foo obj delete obj 这段代码执行完后 obj is null but foo仍然指的
  • 使用 tm 和 RWeka 创建 N-Grams - 适用于 VCorpus,但不适用于 Corpus

    遵循许多创建指南biGrams使用 tm 和 RWeka 包 我感到沮丧的是 只有1 Grams被退回tdm 通过多次试验和错误 我发现使用 实现了正确的功能VCorpus 但不使用 Corpus 顺便说一句 我很确定这在 1 个月前与 C
  • ggplot2 有没有一种简单的方法来包装注释文本?

    我目前正在使用ggplot2和注释函数 文档中的示例如下 我对未知长度的文本进行注释的宽度有限 并且需要一种自动方式将其包装在一些文本中x start and x end价值观 由于我不想更改字体大小 因此我还需要移动y值取决于引入的中断数
  • x86-64 在寄存器中传递参数的顺序

    我对 x86 64 环境中的参数传递过程感到好奇 因此我编写了一段代码 a c extern int shared int main int a 100 swap a shared b c int shared 1 void swap in
  • 使用 PowerShell 在目录上递归运行简单命令

    使用 DOS 脚本或 PowerShell 在目录及其所有子目录上运行此简单命令的最快方法是什么 convert filename jpg resize 620x620 R processed filename jpg 单个目录的 DOS
  • jquery ajax 休息调用 - 不支持的媒体类型

    我正在对休息服务进行简单的 jquery ajax 调用 我将 contentType 设置为 application json 其余资源配置为接受 MediaType APPLICATION JSON 这是一个 POST 方法 通过这个设
  • ASP.NET MVC Html.ValidationSummary(true) 不显示模型错误

    我对 Html ValidationSummary 有一些问题 我不想在 ValidationSummary 中显示属性错误 当我设置 Html ValidationSummary true 时 它不会显示来自 ModelState 的错误
  • 在 Java 中使用 MANIFEST.MF 文件

    我注意到 JAR WAR 和 EAR 文件有一个MANIFEST MF文件下的META INF folder 有什么用MANIFEST MF文件 该文件中可以指定哪些内容 使用 Java 开发工具包 1 0 版创建的 JAR 文件中的 Ma
  • 在 MySQL 的正则表达式中使用列

    我正在使用以下查询regexp SELECT a id a company a name b title b description b t id FROM a b WHERE b title REGEXP lt a company gt
  • 如何将包含字符转义序列的字符串转换为 char?

    我正在寻找一种将包含字符转义序列的字符串转换为所表示的字符的方法 例如 我想解析字符串 有两个字符 一个反斜杠和一个双引号 到 char 中 因此 将一组字符转换为一个字符 所以可能会做这样的事情 反之亦然 package test pub
  • ASP.NET MVC 3:- 使用数据库而不是资源文件作为本地化存储

    我们在数据库中有本地化的字符串 想知道是否扩展 ASP NET 资源提供程序模型可与 ASP NET MVC 3 Razor 视图引擎配合使用 请告诉我 一旦我们扩展了 ASP NET 资源提供程序模型 ASP NET MVC 3 Razo