如何将数据从View传递到控制器
如何将数据从View传递到控制器
在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送表单实现的.具体使用中,主要使用以下三种方法.
1、通过Request.Form读取表单数据
2、通过FormCollection读取表单数据
3、直接读取表单数据对象
一、通过Request.Form读取表单数据
1、表单的代码如下
<fieldset>
<p>
<%using (Html.BeginForm("RequestForm", "Home"))
{%>
FirstName:<%=Html.TextBox("FirstName")%><br />
LastName:<%=Html.TextBox("LastName")%>
<input type="submit" name="提交" value="RequestForm" /><br />
<%} %>
</p>
</fieldset>
2、在HomeController中定义如下方法,用于接收View传来的数据
public ActionResult RequestForm()
{
Person person = new Person();
person.FirstName = Request.Form["FirstName"];
person.LastName = Request.Form["LastName"];
return View(person);
}
3、说明
(1)、Html.BeginForm("RequestForm", "Home")是MVC中的FormExtensions类中的扩展方法.第一个参数指明接收表单的Action,第二个参数指明接受表单的Controller.
(2)、这条语句指明了Home Controller中的Action RequestForm接受了刚才传递来的数据.发送的表单数据两个文本框: "FirstName"和"LastName"。
二、通过FormCollection读取表单数据
ASP.NET MVC中的FormCollection对象是提交的Form中所有对象的集合.
例如
public ActionResult FormCollection(FormCollection formCollection)
{
Person person = new Person();
person.FirstName = formCollection["FirstName"];
person.LastName = formCollection["LastName"];
return View(person);
}
说明:FormCollection()方法中传入了FormCollection类型的参数,该参数会自动绑定表单中的所有数据.
三、直接读取表单数据对象
1、表单如下
<fieldset>
<p>
<%using (Html.BeginForm("Person", "Home"))
{ %>
FirstName:<%=Html.TextBox("FirstName")%><br />
LastName:<%=Html.TextBox("LastName")%><br />
<input type="submit" name="Submit" value="Person" /><br />
<%} %>
</p>
</fieldset>
处理该表单的Action是HomeController中的Person方法.发送两个文本框中的数据.
2、程序的运行结果如下