我喜欢用模型进行验证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