关于asp.net mvc:ASP MVC4模型传递背后会发生什么

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",在单击提交之后,它们应该在那里,因为相同的对象被传递回,但现在字段是空的。

我错过了一些重要的模特传球吗?欢迎提出任何建议


为了从已发布的表单中检索值,需要为ViewModel提供getter和setter。

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方法调用视图。