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种方法全程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!