1.在控制器中建立一个PostDemo方法,建立视图创建一个表单
<h2>PostDemo</h2>
name的值:@ViewBag.name
<br />
name2的值:@ViewBag.name2
<form action="/RequestDemo/PostDemo" method="post">
<input type="text" id="name" name="name"/>
<input type="submit" value="提交"/>
</form>
实体方式提交:
<form action="/RequestDemo/PostDemomodel" method="post">
<input type="text" id="name" name="name" />
<input type="submit" value="提交" />
</form>
2.然后建立一个和PostDemo方法同名的方法,标记为httpPost请求,参数为FormCollection类型,表示是获取提交保单所有的数据
//默认为Get方法请求
public ActionResult PostDemo()
{
return View();
}
//标记为Post方式请求,改方法就只能接受post方法请求
[HttpPost]
public ActionResult PostDemo(FormCollection form)
{
//第一种获取提交表单的方式
string name = Request.Form["name"];
ViewBag.name = name;
//第二种获取提交表单的方式
string name2 = form["name"];
ViewBag.name2 = name2;
return View();
}
3.第三种写法是使用一个类来接收数据,同样也要标记HttpPost,这里是MVC自动把表单中名称跟PersonViewModel类中同名的属性复制,注意必须:前台提交的input标签中的text元素名是name和PersonViewModel类的属性名称相同。
[HttpPost]
public ActionResult PostDemomodel(PersonViewModel model)
{
//使用model方式提交
string name = model.Name;
ViewBag.name = name; return View("PostDemo");
}
PersonViewModel类:
public class PersonViewModel
{
public string Name { get; set; } public int Age { get; set; }
}