提交表单
在view代码中BeginForm函数有几个参数BeginForm("index", "test", FormMethod.Post),index是actionName,test是Controller名字.<span style="font-family:KaiTi_GB2312;font-size:18px;">@using (Html.BeginForm("index", "home", FormMethod.Post))// FormMethod.Get
{
@:form主体1
}<p />
@{Html.BeginForm("index", "home", FormMethod.Post);} <p />/ FormMethod.Get
form主体2
@{Html.EndForm();}
</span>
接收参数
1、Parameters(参数)
<span style="font-family:KaiTi_GB2312;font-size:18px;">ASP.NET MVC下是用[Http*]或[AcceptVerbs(HttpVerbs.*)]特性去实现类似WebForm下的IsPostBack
[AcceptVerbs(HttpVerbs.Post)]//或HttpVerbs.Get
public ActionResult Index(string username, string password)
{
// 参数方式
ViewData[" user "] = username + password;
return View();
}
}
</span>
2.Request
Request["name"|index]Request.form["name"|index]
<span style="font-family:KaiTi_GB2312;font-size:18px;">[AcceptVerbs(HttpVerbs.Post)] //或HttpVerbs.Get
public ActionResult Index(string username, string password)
{
// Request取数据方式-获得Post/Get提交
ViewData["user"] = Request["username"] + Request["password"];
// Request.Form取数据方式-获得Post提交
ViewData["user"] = Request.Form["username"] + Request.Form["password"];
// webform方式-获得Get提交
ViewData["user"] = Request.QueryString["username"] + Request.QueryString["password"];
return View();
}
</span>
3.Model(实体对象)-强类型
<span style="font-family:KaiTi_GB2312;font-size:18px;">[AcceptVerbs(HttpVerbs.Post)] //或HttpVerbs.Get
public ActionResult Index(User model)
{
// 属性名字和参数名一致
ViewData[" user "] = model.UserName + model.PassWord;
return View();
}
</span>
4.ViewModel-强类型
ViewData 字典方法的优点是非常快和容易实现。部分开发人员不喜欢使用基于字符串的字典(string-based dictionaries),因为一些输入错误会导致错误,但是不能在编译期间发现。
在使用View 视图模板中使用强类型时,非强类型的ViewData 字典也需要使用as 操作符或类型转换。
另一个可选的方法是ViewModel 模式。当时有这一模式时,我们需要针对特定的View 创建强类型的类,
公开View 模板需要的动态参数值或内容。Controller 类接着填充和传递这些类给View 模板去使用。这样可以实现类型安全、编译期间检查和编辑器智能提示等等。
【总结】
从接触MVC到现在,对于数据到底是如何是传递的一直不太清楚。即使到写完这篇依旧是似懂非懂的。在接下来的时间,会结合这些理论知识在项目中好好理解这些知识在项目中的使用方法。