自动更新基于模型的视图

时间:2013-11-09 21:03:22

标签: c# asp.net-mvc razor

所以我一直在玩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个位置吗?

感谢您的想法!

2 个答案:

答案 0 :(得分:0)

不,ASP.NET MVC不会这样做。它适用于需要高度自定义视图的应用程序。

您正在寻找的术语是Scaffolding。有一个名为MvcScaffolding的支持不太好的项目,但是.NET中脚手架的真正优惠是ASP.NET Dynamic Data,我建议你看看你是否只需要拼凑一个真的快速CRUD用户界面并不关心它看起来如何。

答案 1 :(得分:0)

如果更改模型的公共接口,则必须在使用它的任何地方更正代码。因此,如果您决定将公共属性FullName重命名为CompleteName,您将更新代码,否则将无法编译。如果代码嵌入在视图中,它将构建但在运行时崩溃。