2013-11-09 95 views
0

所以我一直在玩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個屬性用戶名和全名。兩者都被標記爲必需,並且它們具有設置的顯示屬性。

這裏是視圖。

<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

不,ASP.NET MVC不會這樣做。它適用於需要高度自定義視圖的應用程序。

您正在尋找的術語是Scaffolding。有一個不是很好支持的項目叫做MvcScaffolding,但是在.NET中腳手架的真實交易是ASP.NET Dynamic Data,我建議你看看如果你只需要將一個非常快的CRUD用戶界面放在一起並且不關心所有這些都看起來如此。

0

如果更改模型的公共接口,則必須在使用該代碼的任何地方更正代碼。因此,如果您決定將公共屬性FullName重命名爲CompleteName您將更新您的代碼,否則將無法編譯。如果代碼嵌入在視圖中,它將會生成但在運行時崩潰。