我喜歡用模型進行驗證ASP.NET MVC:傳遞幾個對象的視圖,包括驗證模型
<!-- ViewPage -->
<%@ Page Language="C#" Inherits="ViewPage<TopicModel>" %>
...
<%= Html.TextBoxFor(m => m.Title) %>
...
<%= Html.TextBoxFor(m => m.Description) %>
// Controller
[HttpPost]
public ActionResult NewTopic(TopicModel model)
{
// validate
}
它的偉大工程,但是當我需要通過額外的數據,我需要創建一個新的ViewModel類和我放鬆了靈活性。
<!-- ViewPage -->
<%@ Page Language="C#" Inherits="ViewPage<TopicViewModel>" %>
<%= Model.SomethingImportant %>
...
<%= Html.TextBoxFor(m => m.TopicModel.Title) %> // UGLY, I get name="TopicViewModel.TopicModel.Title"
...
<%= Html.TextBoxFor(m => m.TopicModel.Description) %> // UGLY, same thing
// Controller
[HttpPost]
public ActionResult NewTopic(TopicViewModel model)
{
// validate
var validationModel = model.TopicModel; // UGLY
}
如何讓它更容易和更好看?
創建視圖模型會失去什麼靈活性?爲什麼你認爲有'name =「TopicModel.Title」'醜陋? – 2010-08-24 07:34:50