我正在观看
HaHaa presentation on ASP.NET MVC from MIX并且他们提到使用Post Model,我猜他们说你可以使用仅用于发布的模型.我试过寻找这个例子.我不明白他们在说什么?有没有人有一个例子,说明在视图模型和帖子模型不是同一类型的强类型视图中这可能如何工作?
解决方法
下面是ScottGu的例子扩展了一下.正如@SLaks所解释的,当收到POST时,MVC将尝试创建一个新的MyPostName对象,并将其属性与from字段匹配.它还将使用匹配和验证的结果更新ModelState属性.
当操作返回视图时,它也必须为它提供模型.但是,视图不必使用相同的模型.实际上,可以使用包含扩展数据的不同模型强类型化视图,例如,它可以将导航属性绑定到DB表中的外部键;如果是这种情况,从POST模型映射到视图模型的逻辑将包含在POST操作中.
public class MyGetModel { string FullName; List<MyGetModel> SuggestedFriends; } public class MyPostModel { string FirstName; string LastName; } //GET: /Customer/Create public ActionResult Create() { MyGetModel myName = new MyGetModel(); myName.FullName = "John Doe"; // Or fetch it from the DB myName.SuggestedFriends = new List<MyGetModel>; // For example - from people select name where name != myName.FullName Model = myName; return View(); } //POST: /Customer/Create [HttpPost] public ActionResult Create(MyPostModel newName) { MyGetModel name = new MyGetModel(); name.FullName = newName.FirstName + "" + newName.LastName; // Or validate and update the DB return View("Create",name); }