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:- 使用数据库而不是资源文件作为本地化存储 的相关文章

  • 如何让 ASP.NET MVC 遵守我的自定义错误设置?

    在 web config 的 customErrors 标记中 我指向一个控制器 在我的控制器中 我重定向到由多个应用程序共享的外部错误页面
  • 更新标记实体日期时间属性不变时

    我的域模型中有此实体服务 具有两个日期时间类型属性entrydate 和updatedon 当编辑视图中的用户进行任何更改并提交表单时 我希望将回发 修改对象的entrydate属性标记为未更改 以便在执行更新时不能覆盖entrydate
  • 智能排序 Localized.strings 文件

    In my Localizable Strings我尝试按字母顺序排列所有对 是否可以按字母顺序重新排序我的Localizable strings 也许使用 genstring 或特殊的 bash 脚本 在这里我还有额外的要求需要完成 1
  • 在 MVC3 视图中输入后显示度量单位的好方法是什么?

    我们开发了许多具有输入的系统 这些输入后面应该有一个相关的文本标签作为测量单位 例如平方米 立方米 吨 立方英尺等 我不需要做任何聪明的事情 比如测量单位之间的比例 只要确保它易于更新并且良好的实践即可 正在寻找相当自动的东西 这将计量单位
  • MVC 3 将实体作为接口传递

    我目前正在开发一个 MVC 3 项目 使用 Ninject 作为我的 DI 业务对象存储在单独的程序集中 我遇到了控制器参数的问题 当回发 CRUD 操作时 我收到错误 无法创建接口实例 我知道您无法创建接口的实例 但似乎解决此问题的唯一方
  • Ninject:选择错误的构造函数

    我有一个带有 Ninject v2 2 1 4 的 ASP NET MVC 3 应用程序 一切都运行良好 然后突然我们开始看到 Ninject 尝试使用带有参数的构造函数而不是无参数构造函数来创建 DbContext 以下是绑定 kerne
  • 如何将值从控制器传递到asp.net中的视图?

    我正在开发一个应用程序 我需要将用户名的值从控制器传递到视图 我尝试了 ViewData 中给出的http msdn microsoft com en us library system web mvc viewdatadictionary
  • 如何设置 web.config 文件以显示完整的错误消息

    我在 Windows Azure 上部署了 MVC 3 应用程序 但现在当我通过请求时staging url它告诉我 很抱歉 在执行您的要求时发生了一个错误 现在我想查看完整的错误消息 默认情况下由于某些安全原因它会隐藏该消息 我知道我们可
  • 将 MVVM 与 Knockout.js 结合使用时在服务器端定义模型

    我计划在客户端使用 knockout js 和 MVVM 模式来构建单页应用程序 因此模型 视图模型将在客户端定义 我对如何在服务器端构建感到困惑 现在 控制器会返回域模型本身吗 从域模型到 ViewModel 的所有映射仅发生在客户端吗
  • MVC3 中的角色管理

    我想向应用程序添加一项功能 以便只有管理员才能创建用户 并且他可以向用户提供对特定页面的访问权限 他可以创建角色 可以为用户提供不同的角色 我正在使用 Visual Studio 2010 并在 MVC3 中构建此应用程序 请给我建议来弥补
  • 具有实体框架的 MVC 控制器的 T4 模板 - 主机的成员属性 (MvcTextTemplateHost)?

    有谁有我可以在 MVC 3 附带的 T4 模板 ControllerWithContext tt 中使用的 Host 对象成员的完整引用吗 我已经尝试了我能想到的所有谷歌搜索 但唯一相关的结果是这个页面 http blogs msdn co
  • 为什么 Rails 中的区域设置充当全局(使用 Thin 时)?

    我刚刚意识到在控制器中设置区域设置的推荐 Rails 方法 before filter set locale def set locale I18n locale params locale I18n default locale end
  • 是否可以让 ASP.NET MVC 3 项目在 Mono 2.10 下运行?

    Mono 2 10 的发行说明建议支持 ASP NET MVC 3 0 和Razor http weblogs asp net scottgu archive 2010 07 02 introducing razor aspx using
  • HttpContext.GetGlobalResourceObject 始终返回 null

    我在 App GlobalResources 文件夹中创建了两个文件 SiteResources en US resx SiteResources sp SP resx 两者都包含 SiteTitleSeparator 的值 这是我想要做的
  • Swift:本地化字符串数组

    我有一个包含 100 多个字符串的数组 其设置如下所示 有什么方法可以本地化数组中的所有字符串 或者这是设置它的更好方法吗 var listOfThings Cars Mopeds 我建议将字符串放入 plist 文件中 然后可以根据需要本
  • 使用 Moq 和 EF 4.1 模拟工作单元

    我正在通过 Contoso 示例进行一些 TDD 实践 并且我用于检索学生的测试正在通过 我创建新学生的测试失败了 尽管实际代码有效 因为我相信 DBContext 没有被嘲笑 为了通过这个测试 我应该重构什么 测试失败 如下所示 Cont
  • 混合 ASP.NET WebForms 和 MVC 授权

    我正在尝试将一些 MVC3 功能混合到现有的 WebForms 应用程序中 我遵循了一些指南 除了授权部分之外 一切都已设置完毕并正常工作 现有的应用程序有
  • Razor 视图类型不继承自“System.Web.WebPages.WebPage”

    我在配置 ASP NET MVC 应用程序时遇到问题 HttpException 0x80004005 Type ASP Page Currency Index cshtml does not inherit from System Web
  • ASP.NET MVC 3 - microsoft-web-helpers v1.1 的问题

    我从 nuget 升级了我的 microsof web helpers 软件包 它本身依赖于 facebook 和 twitter API 现在 当我的应用程序尝试运行时 出现以下错误 编译器错误消息 CS0246 找不到类型或命名空间名称
  • 如何在 MVC3 Razor 视图中呈现数据表

    我在 xls 电子表格 1 之间有一个可靠且经过测试的导入方法 该方法返回DataTable 我已将其定位在我的服务层中 而不是数据中 因为只有工作簿作为上传文件保存 但现在我想知道在哪里以及如何生成此内容的 HTML 表示形式DataTa

随机推荐

  • 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