.resx文件中的资源对MVC代码不可见

时间:2014-08-15 13:23:09

标签: c# asp.net-mvc resx

我有两个项目的解决方案。一个称为资源,是用于本地化的资源.resx文件的集合。另一个是MVC 5项目,它以Resources作为参考。我在名为EmailAddress的.resx文件中定义了一个新资源,当然它在Resource.Designer中,cs:

 internal static string EmailAddress {
            get {
                return ResourceManager.GetString("EmailAddress", resourceCulture);
            }
        }

但是,当我尝试在我的Model类中引用时,它表示它不存在:

[Display(Name = "EmailAddress", ResourceType = typeof(Resources.Resources))]
        [Required(ErrorMessageResourceType = typeof(Resources.Resources),
                  ErrorMessageResourceName = "EmailRequired")]
        [RegularExpression(".+@.+\\..+", ErrorMessageResourceType = typeof(Resources.Resources),
                                         ErrorMessageResourceName = "EmailInvalid")]
        public string EmailAddress { get; set; }

另外,如果我尝试使用Razor View,它不会出现在Intellisense中:

@Resources.Resources. 

发生了什么事?我还应该声明资源文件最初是从一个示例项目中获取的,并且其中的资源显示但是我添加的任何资源都没有(但是它的设计者cs文件)。

1 个答案:

答案 0 :(得分:0)

我有一个非常相似的问题,就我而言,通过对这些资源文件做两件事可以解决:

  • 将自定义工具设置为PublicResXFileCodeGenerator。
  • 将构建操作设置为“嵌入式资源”。
  • 另外在web.config中将视图的引用添加到名称空间部分中的资源。

此后,它就解决了,因此我可以将其称为“ @Resources.Resources.EmailAddress