MVC3的模板站点;这是显示模型的正确方法吗?

时间:2011-10-07 15:03:52

标签: asp.net-mvc asp.net-mvc-3 design-patterns separation-of-concerns

我对Microsoft在其模板网站中显示登录页面的方式感到困惑。 “用户名”,“密码”和“记住我?”的具体措辞。在模型中设置。这似乎完全倒退了。我认为MVC模式的全部意义在于帮助分离关注点;视图上显示的文本不会像那样绑定到模型。我认为您希望在视图中以纯文本形式显示“用户名”,这样就可以将其更改为“用户ID”或轻松翻译成其他语言,而无需更改模型。

在创建与登录页面类似的新页面时,我是否应该关注其模板?在模型本身中定义显示文本是否有一些优势?

2 个答案:

答案 0 :(得分:3)

实际上你应该传递给视图的不是模型。这是一个视图模型。视图模型是专门为满足给定视图的要求而定制的类。因此,在此视图模型中,您可以使用[Display]属性修饰属性以更改相应标签的文本,或者在使用Html.LabelFor辅助对象作为第二个参数时将其设置在视图中。 / p>

答案 1 :(得分:0)

您可以使用attibute从“System.ComponentModel.DataAnnotations”命名空间中修饰viewmodel属性,并在更多视图和控制器操作中用于显示标签和验证模型。为此,您可以使用model而不是viewmodel。