我对Microsoft在其模板网站中显示登录页面的方式感到困惑。 “用户名”,“密码”和“记住我?”的具体措辞。在模型中设置。这似乎完全倒退了。我认为MVC模式的全部意义在于帮助分离关注点;视图上显示的文本不会像那样绑定到模型。我认为您希望在视图中以纯文本形式显示“用户名”,这样就可以将其更改为“用户ID”或轻松翻译成其他语言,而无需更改模型。
在创建与登录页面类似的新页面时,我是否应该关注其模板?在模型本身中定义显示文本是否有一些优势?
答案 0 :(得分:3)
实际上你应该传递给视图的不是模型。这是一个视图模型。视图模型是专门为满足给定视图的要求而定制的类。因此,在此视图模型中,您可以使用[Display]
属性修饰属性以更改相应标签的文本,或者在使用Html.LabelFor
辅助对象作为第二个参数时将其设置在视图中。 / p>
答案 1 :(得分:0)
您可以使用attibute从“System.ComponentModel.DataAnnotations”命名空间中修饰viewmodel属性,并在更多视图和控制器操作中用于显示标签和验证模型。为此,您可以使用model而不是viewmodel。