MVC小系列Html.BeginForm与Ajax.BeginForm

Posted 那就让我这样吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC小系列Html.BeginForm与Ajax.BeginForm相关的知识,希望对你有一定的参考价值。

html.BeginForm与Ajax.BeginForm都是mvc的表单元素,前者是普通的表单提交,而后者是支持异步的表单提交,直接用mvc自带的Ajax.BeginForm就可以很容易完成一个异步的表单提交动作

 

第一种普通提交几种方式

 1      @using (Html.BeginForm()) {} //提交到当前页面
 2  
 3      @using (Html.BeginForm(new {} )) {} //提交到当前页面,并可以传递参数
 4 
 5      @using (Html.BeginForm("action","controller")) {} //提交到指定controller下的action中
 6 
 7      @using (Html.BeginForm("action","controller",FormMethod.POST)) {} //提交到指定controller下的action中,并指定提交方式
 8 
 9       FormMethod枚举如下:   
10 
11    // 摘要:
12     //     枚举窗体的 HTTP 请求类型。
13     public enum FormMethod
14     {
15         // 摘要:
16         //     指定 GET 请求。
17         Get = 0,
18         //
19         // 摘要:
20         //     指定 POST 请求。
21         Post = 1,
22     }

第二种ajax提交:

@using (Ajax.BeginForm(
     new AjaxOptions
     {
         UpdateTargetId = "UserLogOnContainer",
         HttpMethod = "Post",
         OnSuccess = " ",
     }))
     {
    
     } //提交到当前页面,提交方式为Post,异步更新模块ID为UserLogOnContainer

  @using (Ajax.BeginForm("action", "controller", null,
     new AjaxOptions
     {
         UpdateTargetId = "UserLogOnContainer",
         HttpMethod = "Post",
         OnSuccess = " ",
     }))
     {
      
     } //提交到指定controller下的action,提交方式为Post,异步更新模块ID为UserLogOnContainer

需要注意的是:

表单的按钮在异步表单中也是Submit类型,如果是异步表单,引入的JS文件需要有jquery.unobtrusive-ajax.min.js,在这项目的Scripts目录已经存在

以上是关于MVC小系列Html.BeginForm与Ajax.BeginForm的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net Mvc Ajax.BeginForm提交表单

在MVC3中,同一个页面有3个按钮是要用ajax异步刷新的,不想用@html.ActionLink,@html.BeginForm()的话,不行

ASP.NET MVC Html.BeginForm用法1

ValidateAntiforgeryToken 不适用于 ASP.NET MVC 中的 Ajax

Html.BeginForm (ASP.NET MVC) 的问题

向 Html.BeginForm MVC/C# 添加样式属性