usr*_*ΛΩΝ 2 localization asp.net-mvc-4
首先,我想澄清一下,我目前正在使用ASP.NET MVC的Model
实体,ViewModel
因为我的项目基于MVCVM,所以我不仅仅是混淆了两者.
无论如何,MVC会自动为ViewModel实体创建一些属性,如下所示(来自向导,本地化为意大利语)
public class LoginModel
{
[Required]
[Display(Name = "Nome utente")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Memorizza account")]
public bool RememberMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
替换Display
属性[Display(Name = LoginViewModelResources.lblUsername)]
会导致编译错误:"参数必须是常量表达式,类型表达式或矩阵创建表达式".简而言之,属性引用是禁止的.
Razor视图使用以下标记生成HTML
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
Run Code Online (Sandbox Code Playgroud)
如何本地化ViewModel以便在前端显示正确的消息?
像这样:
[Required]
[Display(Name = "lblUsername", ResourceType = typeof(LoginViewModelResources))]
public string UserName { get; set; }
Run Code Online (Sandbox Code Playgroud)
为此,您必须定义一个LoginViewModelResources.resx
文件Custom Tool=PublicResXFileCodeGenerator
(您在资源文件的属性中设置它)并包含一个标签lblUsername
,该标签将保存本地化资源.
归档时间: |
|
查看次数: |
4648 次 |
最近记录: |