【发布时间】:2012-06-08 13:12:15
【问题描述】:
我在国际化我的代码时遇到了问题。除了这部分代码之外,它在我的网站上几乎所有地方都很好用。
[DataType(DataType.Password)]
[Display(ResourceType = typeof(strings), Name = "BevestigWachtwoord")]
private CultureInfo resourceCulture;
[Compare("Password", ErrorMessage = ResourceManager.GetString("PassMismatch",resourceCulture))]
public string ConfirmPassword { get; set; }
错误(需要对象引用.........)在 ResourceManager.GetString("PassMismatch",resourceCulture))] 如果我尝试 ErrorMessage=strings.PassMismatch (其中字符串是我的资源文件),我会得到同样的错误 当我只填写一个字符串时,它确实有效。 我有同样的显示问题,但我通过这样做解决了这个问题
[Display(ResourceType = typeof(strings), Name = "Email")]
我可以在这里尝试类似的东西吗?
编辑:我的错误
错误 13 非静态字段、方法或属性 'MvcApplication2.Models.RegisterModel.resourceCulture' C:\Users\stuart\documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Models 需要对象引用\AccountModels.cs 74 86 MvcApplication2 错误 14 非静态字段、方法或属性需要对象引用 'System.Resources.ResourceManager.GetString(string, System.Globalization.CultureInfo)' C:\Users\stuart\documents\visual studio 2010\Projects \MvcApplication2\MvcApplication2\Models\AccountModels.cs 74 45 MvcApplication2 错误 11 分配给“MvcApplication2.Models.RegisterModel.error”的表达式必须是常量 C:\Users\stuart\documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Models\AccountModels.cs 67 30 MvcApplication2 错误 12 属性或索引器“MvcApplication2.strings.PassMismatch”无法在此上下文中使用,因为它缺少获取访问器 C:\Users\stuart\documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Models\AccountModels.cs 67 30 MvcApplication2
对于其他评论,我正在尝试类似的东西 ErrorMessage = resourceCulture ResourceManager.GetString("PassMismatch",Thread.CurrentThread.CurrentUICulture))]
但没有任何效果
【问题讨论】:
-
在将 resourceCulture 传递给 ResourceManager.GetString()...之前,您是否(如果有,如何)分配它?否则你会通过null!
-
你能发布你得到的异常堆栈跟踪吗?
-
我不认为它是 null,因为我在 Display 部分的其他本地化工作,即使它是 null,我如何获得 currentCulture?
标签: c# asp.net-mvc internationalization