MVC学习系列-表单的异步提交

MVC中表单的提交有两种方式:jQuery方式、微软异步方式

下面分别就两种方法进行介绍:

1.jQuery方式

<pre name="code" class="html">        <script type="text/javascript">
            $(function () {
                $("#loadingId").css("display","none");
                $("#btnShow").click(function () {
                    $.get("Login/GetTime", {}, function (msg) {
                        alert(msg);
                    })
                })
            })
        </script>

上面演示的是异步方式中的get()异步,第一个参数指定url,第二个参数是传递的值,由于是get请求,没有数据的传递,第三个参数是get()请求执行成功过以后执行的函数(后台会返回数据msg),比较简单。同样还可以使用Post()

        <script type="text/javascript">
            $(function () {
                $("#loadingId").css("display","none");
                $("#btnShow").click(function () {
                    $.post("Login/GetTime", {"value":"1"}, function (msg) {
                        alert(msg);
                    })
                })
            })
        </script>

同样还可以使用ajax方式,在此不累述

2.微软异步方式

        <% using (Ajax.BeginForm("GetTime","Login",new AjaxOptions()
               {
                   Confirm = "您确定要提交吗?",
                   HttpMethod = "Get",
                   UpdateTargetId = "result",//更新目标的Id,后台返回数据之后,数据交给哪个dom元素来展示
                   InsertionMode = InsertionMode.InsertAfter,
                   //OnSuccess = "afterGetDate",//设置成功之后的一个执行的方法
                   LoadingElementId = "loadingId"//设置一个加载后台数据的时候,显示一个dom元素的id
               }))
           { %>
            <input type="text" name="txtName"/>
            <input type="submit" value="提交"/>

        <% } %>

要使用微软的异步方法还必须引异步包进来

<script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>

微软的异步方式以Ajax.BeginForm() 开头,里面包含了几个参数。第一个参数是异步提交的Action;第二个是异步提交的控制器名字,两者共同组成了一个url;第三个是一些异步选项。

Confirm是用来在用户提交前弹出一个对话框

HttpMethod:异步提交数据的方式
<pre name="code" class="html">UpdateTargetId:更新<span style="font-family: Arial, Helvetica, sans-serif;">更新目标的Id,后台返回数据之后,数据交给哪个dom元素来展示</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="html">InsertionMode:插入结点的方式。是一个枚举类型,有Replace、<span style="font-family: Arial, Helvetica, sans-serif;">InsertBefore 、</span><span style="font-family: Arial, Helvetica, sans-serif;">InsertAfter选项</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="html">OnSuccess:设置成功之后的一个执行的方法
<pre name="code" class="html"><span style="font-family: Arial, Helvetica, sans-serif;">LoadingElementId:设置一个加载后台数据的时候,显示一个dom元素的id。我们可以通过这个给用户显示操作进度</span>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
当我们点击运行时,微软异步方式代码发生了转变,转变成了下面的格式:
<form action="/Login/GetTime" data-ajax="true" data-ajax-confirm="您确定要提交吗?" data-ajax-loading="#loadingId" data-ajax-method="Get" data-ajax-mode="after" data-ajax-update="#result" id="form0" method="post">
            <input type="text" name="txtName">
            <input type="submit" value="提交">
        
        </form>
上面代码的转换就是通过我们上面引进的微软的异步包实现的。当然我们也完全可以不使用微软提供的异步提交数据的方式,直接使用上面的转换过的form表单的格式,一样可以实现异步提交数据的效果。



				
时间: 2024-08-10 23:15:06

MVC学习系列-表单的异步提交的相关文章

MVC学习系列-表单数据提交

在Asp.Net MVC项目中,View负责页面展示.收集数据,展示的数据是从Controller的Action中获取,将收集的数据提交到Controller的Action.这里的数据,可能是基础类型,或者是Model,或者是Model的部分内容,或者是集合比如List或Dictionary. 数据从View传递到Controller的Action时,有以下几种方式, 1.RouteData(url中的路由数据), 2.QueryString(http get的查询参数如?page=2), 3.

使用jQuery重用form表单并异步提交到其他action

在做页面开发的时候,有时候要重用表单的数据,并异步请求提交到其他的链接中,这个时候就可以使用jquery去修改表单的action值(记得使用后修改回来),并调用submit方法,当然后台的链接action或者controller方法必须返回值类型为void,否则将发生页面跳转,返回null则显示空白页,无法实现异步调用.另外,这里可以使用另外一个方式提交,将表单序列化,然后用jQuery的ajax提交,不过要对返回的信息进行处理. 直接上代码: (1)jQuery改变form属性 $(".exp

MVC中Form表单的提交

Form表单是数据提交的一种,在MVC中Form表单提交到服务器中地址,接受Form表单的方式有一下几种: 1.采用实体Model类型提交,Form表单中的Input标签name要和Model对应的属性保持一致,接受Form表单的服务器端就可以直接以实体的方式存储,使用方式如下: Form表单: <form action="/Employee/SaveEmployee" method="post"> <table> <tr> &l

MVC中处理表单提交的方式(Ajax+Jquery)

MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t"> <div class="col-md-6"> <div class="form-group"> <label class="col-sm-3 control-label">订单编号:</la

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

ASP.NET MVC学习系列(二)-WebAPI请求(转)

转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax

bootstrap基础学习【表单含按钮】(二)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>bootstrap基础学习[表单](二)</title> <link rel="stylesheet" href="css/bootstrap.min.css" /> </head> <body style="padd

Knockout学习之表单绑定器(上)

表单绑定器 “click”绑定 Click 绑定器可以将javascript函数绑定到指定的dom元素,并且再该元素被点击时将触发绑定的函数,大多数情况下都会使用button.input和a元素,当然其他可见的dom元素也是一样可以的.下面我们就简单的举一个例子: 1 <div> 2 你已经点击了<span data-bind="text:numberOfClicks" ></span> 3 <button data-bind="cl

Django学习之表单(forms)

我们的博客现在已经实现了博客列表的查看,博客的查看.现在该是我们实现创建和更新博客的时候了. 要实现博客的创建和更新,我们需要学习Django表单的相关知识. 在处理表单的过程中,Django表单功能做了哪些工作呢? 传递数据的准备和重建 为数据创建HTML表单 从客户端接收和处理提交的表单和数据 Django Form类是系统的核心组件.在django中, 模型描述的是一个对象的逻辑架构,这绵行为,它显现给我们的方式.与此类似,Form类描述的是一个表单和决定它是如何工作和显示的. 一个模型类