what happens behind model passing in ASP MVC4
现在就开始学习ASP MVC,这是我在MVC上的第三周。
我对建模过程做了一些测试,基本上控制器只是得到模型,然后在不做任何事情的情况下进入视图,但是代码似乎失败了。
下面是我创建的视图模型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Bank2.Models.ViewModel { public class PaymentView { public List<Wires_SWIFT> lists{get; set;} public string b_str{get; set;} public string o_str{get; set;} } } |
这是视图:
1 2 3 4 5 6 7 | @model ViewModel @using(Html.BeginForm("Payment","Home",FormMethod.Post)){ @Html.TextBoxFor(d=> d.o_str)<br/> @Html.TextBoxFor(d=> d.b_str)<br/> <input type="submit" name="Search"> } |
控制器抓取模型并立即通过
1 2 3 4 5 6 7 | ... [HttpPost] public ActionResult Payment(ViewModel m){ return View(m) } ... |
我在texbox中键入了两个字符串:像"aa"和"bb",在单击提交之后,它们应该在那里,因为相同的对象被传递回,但现在字段是空的。
我错过了一些重要的模特传球吗?欢迎提出任何建议
为了从已发布的表单中检索值,需要为
1 2 3 4 5 6 | public class ViewModel { public string str1 { get; set; } public string str2 { get; set; } public List<int> list { get; set; } } |
您正在向我们展示该方法的后期版本。通常,后处理方法会采用模型,进行某种处理(输入验证、保存到数据库、调用服务等),然后如果成功,则重定向到其他页面。
如果输入有任何需要用户修复的问题,通常只从post-action方法调用视图。