搜索

查看: 3111|回复: 11

[ASP.NET] ASP.NET MVC实现本地化和全球化

[复制链接]
发表于 2023-5-4 11:24:26 | 显示全部楼层 |阅读模式
Editor 2023-5-4 11:24:26 3111 11 看全部
在开发多语言网站时,我们可以为某种语言创建一个资源文件,根据浏览器所设置的不同语言偏好,让运行时选择具体使用哪个资源文件。资源文件在生成程序集的时候被嵌入到程序集。
本篇体验,在ASP.NET MVC中实现全球化和本地化,比如,当浏览器选择英文,就让某些页面元素显示英文;当浏览器选择用中文浏览,则显示中文。
使用Visual Studio 2013创建一个无身份验证的MVC项目。
创建如下的Model:
    public class Student
    {
        public int Id { get; set; }
        [Display(Name="姓名")]
        [Required(ErrorMessage="必填")]
        public string Name { get; set; }
        [Display(Name = "年龄")]
        [Required(ErrorMessage = "必填")]
        public int Age { get; set; }
    }
生成解决方案。
在HomeController中Index方法中添加一个有关Student的强类型视图,并选择默认的Create模版。大致如下:
@model GlobalAndLocal.Models.Student
Index
            @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
            
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            

            
               
            

2022102583146970.png

2022102583146970.png


现在,我们希望,当浏览器选择英语的时候,页面元素都显示英文。
在解决方案下创建一个名称为MyResources的类库。
创建有关中文的资源文件,并把访问修饰符设置为public:

2022102583146971.png

2022102583146971.png


创建有关英文的资源文件,也把访问修饰符设置为public:

2022102583146972.png

2022102583146972.png


生成类库。
在MVC项目中引用该类库。
修改Student类如下:
    public class Student
    {
        public int Id { get; set; }
        [Display(Name=MyResources.Resource.Name)]
        [Required(ErrorMessage=MyResources.Resource.NameRequiredError)]
        public string Name { get; set; }
        [Display(Name = MyResources.Resource.Age)]
        [Required(ErrorMessage = MyResources.Resource.AgeRequiredError)]
        public int Age { get; set; }
    }
在Index强类型视图页中,修改如下:
@MyResources.Resource.IndexHeader
            @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
            
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            

            
                 
            

运行MVC项目,出现报错。

2022102583146974.png

2022102583146974.png


修改Student类如下:
    public class Student
    {
        public int Id { get; set; }
        [Display(Name="Name", ResourceType=typeof(MyResources.Resource))]
        [Required(ErrorMessageResourceName = "NameRequiredError", ErrorMessageResourceType = typeof(MyResources.Resource))]
        public string Name { get; set; }
        [Display(Name = "Age", ResourceType = typeof(MyResources.Resource))]
        [Required(ErrorMessageResourceName = "AgeRequiredError", ErrorMessageResourceType = typeof(MyResources.Resource))]
        public int Age { get; set; }
         
    }
最后,还需要在Web.config中设置如下:
  
    ......
      
  
在chrome浏览器语言设置中选择英语。

2022102583146975.png

2022102583146975.png


刷新后,效果如下:

2022102583146976.png

2022102583146976.png


以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对知鸟论坛的支持。如果你想了解更多相关内容请查看下面相关链接
回复

使用道具 举报

发表于 2023-6-29 00:32:50 | 显示全部楼层
心随674 2023-6-29 00:32:50 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-6-29 04:54:27 | 显示全部楼层
小妖花满楼满fx 2023-6-29 04:54:27 看全部
既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
回复

使用道具 举报

发表于 2023-6-29 18:44:18 | 显示全部楼层
我的苦恼冉 2023-6-29 18:44:18 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-6-30 01:43:07 | 显示全部楼层
米老鼠和蓝精鼠v 2023-6-30 01:43:07 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-6-30 03:48:57 | 显示全部楼层
术数古籍专卖疤 2023-6-30 03:48:57 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 08:28:44 | 显示全部楼层
六翼天使494 2023-6-30 08:28:44 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-6-30 10:25:37 | 显示全部楼层
掌舵的鱼1987 2023-6-30 10:25:37 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-6-30 17:42:53 | 显示全部楼层
伊索谗言 2023-6-30 17:42:53 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-7-3 12:19:17 | 显示全部楼层
贺老师 2023-7-3 12:19:17 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表