所以我一直在玩VS 2013中的MVC网站。我是MVC概念的新手,我正试图绕过它。我一直关注this turtorial
我在这里要特别理解的是 - 是否可以根据分配给模型中属性的属性动态更新视图。以下面的例子为例:
public class ExternalLoginConfirmationViewModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[Display(Name = "Full Name")]
public string Fullname { get; set; }
}
此类中没有我们有2个属性UserName和Fullname。两者都标有必填项,并且设置了显示属性。
以下是观点。
<li>
@Html.LabelFor(m => m.FullName)
@Html.TextBoxFor(m => m.FullName)
</li>
<li>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
</li>
那么可以使用模型属性上的属性自动神奇地创建视图,这样我每次更改模型时都不必更新3个位置吗?
感谢您的想法!
答案 0 :(得分:0)
不,ASP.NET MVC不会这样做。它适用于需要高度自定义视图的应用程序。
您正在寻找的术语是Scaffolding。有一个名为MvcScaffolding的支持不太好的项目,但是.NET中脚手架的真正优惠是ASP.NET Dynamic Data,我建议你看看你是否只需要拼凑一个真的快速CRUD用户界面并不关心它看起来如何。
答案 1 :(得分:0)
如果更改模型的公共接口,则必须在使用它的任何地方更正代码。因此,如果您决定将公共属性FullName
重命名为CompleteName
,您将更新代码,否则将无法编译。如果代码嵌入在视图中,它将构建但在运行时崩溃。