Mvc提交表单的四种方法全程详解
一,MVCHtmlHelper方法
1.
Html.BeginForm(actionName,controllerName,method,htmlAttributes){}
2.
BeginRouteForm方法(HtmlHelper,String,Object,FormMethod)
二,传统Form表单Aciton属性提交
三,Jquery+Ajax提交表单
四,MVCController控制器和表单参数传递
MVCHtmlHelper方法
一,Html.BeginForm(actionName,controllerName,method,htmlAttributes){}
注:所有要提交的内容包括按钮都必须在{}内
参数
htmlHelper类型:System.Web.Mvc.HtmlHelper
此方法扩展的HTML帮助器实例。actionName类型:System.String
操作方法的名称。controllerName类型:System.String
控制器的名称。routeValues类型:System.Object
一个包含路由参数的对象。通过检查对象的属性,利用反射检索参数。此对象通常是使用对象初始值设定项语法创建的。method类型:System.Web.Mvc.FormMethod
用于处理窗体的HTTP方法(GET或POST)。htmlAttributes类型:System.Object
一个对象,其中包含要为该元素设置的HTML特性。
返回值
类型:System.Web.Mvc.Html.MvcForm
<form>开始标记。
用法说明
在VisualBasic和C#中,您可以对HtmlHelper类型的任何对象将此方法作为实例方法调用。在您使用实例方法语法调用此方法时,将忽略第一个参数
Html.BeginForm方法示例
MVCView代码
<h1>在线申请</h1> @using(Html.BeginForm("Apply","Star",FormMethod.Post,new{@class="MyForm"})) { <divclass="application_b_3"> <tablewidth="820"border="0"> <tr> <tdwidth="80"height="50">达人类型</td> <tdwidth="730"> @Html.DropDownListFor(m=>m.StarModel.TypeID,Model.DropList,new{id="type",@class="my-"}) </td> </tr> <tr> <tdheight="50">首页达人照</td> <td> <divclass="picture_an"id="UploadPhoto"style="width:142px"> <ahref="javascript:void(0);"class="btn_addPic"><span><em>+</em>上传照片</span> <inputtabindex="3"title="支持jpg、jpeg、gif、png格式,文件小于5M"size="3"name="pic"id="absFileInput"class="filePrew"type="file"/> </a> </div> </td> </tr> <tr> <tdheight="50"></td> <td> @Html.HiddenFor(m=>m.StarModel.UserGravatar,new{id="SXtPhoto"}) <imgsrc=""id="imgPhoto"height="176px"/> </td> </tr> <tr> <tdheight="100">自荐理由</td> <td> @Html.TextAreaFor(m=>m.StarModel.ApplyReason,new{id="tDesc"}) </td> </tr> <tr> <tdheight="50"></td> <td> <ahref="javascript:void(0)"id="btnApplication"><imgsrc="@Url.Content("~/Areas/SNS/Themes/Default/Content/images/ap_9.gif")"alt=""/></a> </td> </tr> </table> </div> }
二,BeginRouteForm方法(HtmlHelper,String,Object,FormMethod)
参数
htmlHelper类型:System.Web.Mvc.HtmlHelper
此方法扩展的HTML帮助程序实例。
routeName类型:System.String
用于获取窗体发布URL的路由的名称。
routeValues类型:System.Object
一个包含路由参数的对象。通过检查对象的属性,利用反射检索参数。此对象通常是使用对象初始值设定项语法创建的。
method类型:System.Web.Mvc.FormMethod
用于处理窗体的HTTP方法(GET或POST)。
返回值
类型:System.Web.Mvc.Html.MvcForm
一个开始<form>标记。
使用说明
在VisualBasic和C#中,可以在HtmlHelper类型的任何对象上将此方法作为实例方法来调用。当使用实例方法语法调用此方法时,请省略第一个参数。
BeginRouteForm示例
<divclass="group-search-boxclearfix"> @using(Html.BeginRouteForm("SearchPage",new{cityID=Model.CityID,productType=Model.CurrentProductType,currentPageIndex=Model.CurrentIndex,keyword=Model.keyword},FormMethod.Get)) { <inputtype="text"name="keyword"class="search-ipt"value=@Model.keyword> <inputtype="submit"id="submit"value="搜索"class="gsearch-btn"> } </div>
传统Form表单Aciton属性提交
直接利用html表单的Aciton属性进行提交。
方法示例
<formid="askform"action="@Url.Action("AskForm")"method="post"> <divclass="title-area-outterclearfix"> <span></span> <selectid="dplBDTType"name="dplBDTType"></select> <selectid="selType"name="selType"></select> </div> </form>
Jquery+Ajax提交表单
方法示例
View部分
<divclass="issue"id="postWeibo"style="width:80px"> <ahref="javascript:void(0)"class="publish-btn">发布</a> </div>
Jquery和Ajax部分
//发布长微博 $("#postWeibo").click(function(){ varblogID=$("#hfID").val(); vartitle=$("#title").val(); varimgurl=$("#previewImgHide").val(); vardes=editor.getContent(); if(title==""){ ShowFailTip('微博标题不能为空!'); return; } if(title.length>=40){ ShowFailTip("微博标题不能超出40个字!"); return; } //检查是否数字 if(isNaN(fee)){ ShowFailTip("不能包含文本必须是数值!"); return; } if(ContainsDisWords(title+des)){ ShowFailTip('您输入的内容含有禁用词,请重新输入!'); return; } $.ajax({ url:"/fx"+$Maticsoft.BasePath+"Blog/AjaxUpdate", type:'POST', async:false, dataType:'html', //timeout:10000, data:{Title:title,CityID:city,Fee:fee,CategoryID:category,Days:days,Tag:tag,startDate:startdate,endDate:enddate,ImgUrl:imgurl,Des:des,BlogID:blogID},// success:function(resultData){ $(".dialogDiv").hide(); if(resultData=="No"){ ShowFailTip("操作失败,请您重试!"); }elseif(resultData=="AA"){ $.jBox.tip('管理员不能操作','error'); }else{ vardata=$(resultData); } } }); });
MVCController控制器和表单参数传递
1.普通参数
HTML标签name和参数名一样。
publicActionResultAskForm(stringtxtTitle,stringtxtEditor,stringdplBDTType,stringselType,stringtxtYZM) { }
2.实体传参
HTML标签name属性和Model属性保持一致
[HttpPost] publicActionResultApply(ViewModel.SNS.Starmodel) { //逻辑 }
4.表单集合传参
[HttpPost] publicActionResultApply(FormCollectionForm) { //逻辑 }
以上所述是小编给大家介绍的Mvc提交表单的4种方法全程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!