asp.net国际化提供了资源文件的解决的方式,
asp.net自带的两个项目文件夹
分别是:App_GlobalResources和App_LocalResources,
App_GlobalResources是全局的,任何文件都可以访问,而App_LocalResources则是生成到相关的命名空间下面
如图,我在视图文件的Main文件夹下创建了一个本地资源文件
在本地资源文件夹下面添加两个资源,默认的语言是英文,另外一个资源文件是中文,当程序查找对于区域的语言失败的时候会从默认语言中取值,所以有了默认语言就不用担心报错啦
本地资源文件会编译到一个类里面去,就是index_cshtml,如下图所示
具体位置是以其路径命名的命令空间, Web.Views.Main.App_LocalResources
页面上面的使用如下,直接类名找到我们想使用的key就可以啦,很方便
代码编写完成,直接运行,结果报了一个错,这个错误让我痛苦了好久,找遍了网上的资源就是没有一个能够解决问题的答案,
我们来反编译一下我们生成的dll,发现dll中确实没有错误中提示的resource文件,然后在好友的提示下,是不是资源文件的类型错了,那我们就改的试一下呗,右击资源文件,查看属性
查看如下图,我们把“生成操作”的值从“内容”改成“嵌入的资源”,重新生成一下解决方案,运行一下,错误问题完美解决了。
这个时候我们再来看一下反编译出来的文件,在dll里面多了一个resources文件夹,里面有了相应的资源文件了,至此问题解决