ASP.NET MVC - 非嵌入式资源文件

ano*_*ous 4 asp.net asp.net-mvc resources

我目前在ASP.NET MVC项目中有一个本地资源文件.此文件的目标是让非程序员编辑网页上的文本.问题是资源文件是嵌入式资源,并在ASP.NET MVC Deployment上编译.这意味着他们将有视觉工作室来更改网站副本.这不是最佳的:)

有没有办法在ASP.NET MVC中使用资源文件,这会导致服务器上的.resx文件,以便管理员可以编辑?

另一个选择是把它放在一个数据库中并有一些前端来编辑它,但我真的想避免这个选项,因为它对于一个小站点上的几个文本字段来说过于复杂.

谢谢!

Chr*_*ers 5

一旦这样做,就是确保资源不被编译.

添加资源文件(例如TextResource.resx)时,可以以类型安全的方式访问资源.

例如:

ViewBag.Message = Resources.TextResource.MyMessage;
Run Code Online (Sandbox Code Playgroud)

添加资源文件(*.resx)后,在解决方案资源管理器中选择它并查看其属性.清除"自定义工具"属性.默认情况下,它包含值"GlobalResourceProxyGenerator".只需删除此值即可.

这有一个缺点,但是您无法再以类型安全的方式访问资源.您必须使用当前HttpContext 的GetGlobalResourceObjectGetLocalResourceObject方法加载它们.

例如:

ViewBag.Message = this.HttpContext.GetGlobalResourceObject("TextResource", 
                  "Hello", CultureInfo.CurrentUICulture);
Run Code Online (Sandbox Code Playgroud)

这样您就可以手动更改资源文件(*.resx).然后,您可以选择构建一个可以读取和修改资源文件内容的应用程序,这些文件只是XML文件.

例如:

http://www.codeproject.com/KB/cs/Editing_a_ResourceFile.aspx