MVC之AJAX异步表单

曾经学习过AJAX,不是特别的熟悉,这次利用学习MVC的机会,好好的体验了一把,非常感谢《MVC开发实战》这本书,看了有两三遍,才算对MVC整个运行的机制有了一定的了解,下面来分享下我们经常在开发时用到到的异步表单的操作。

DEMO

1.VIEW

<span style="font-size:18px;">@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>

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

    <script type="text/javascript">
        function suc(resText) {
            //
            alert(resText);
        }
        function err(xhr) {
            //失败时执行操作,参数为ajaxrequest对象
            alert(xhr.readyState);
        }
    </script>
    <style type="text/css">
        #imgLoad {
            display: none;
        }
    </style>
</head>
<body>
    @Ajax.ActionLink("连接文字", "GetDate", new AjaxOptions()
{
    HttpMethod = "post",
    //更新的控件id
    UpdateTargetId = "contDiv",
    //更新方式
    InsertionMode = InsertionMode.Replace
})
    <div id="contDiv" style="border:1px solid #0094ff; width:400px;">我很好</div>

    <h1>异步表单:</h1>
    @using (Ajax.BeginForm("GetDat", "Home", new AjaxOptions()
    {
        //提交请求的方法
        HttpMethod = "post",
        //成功时执行的异步函数
        OnSuccess = "suc",
        OnFailure = "err",
        //请求时加载的图片
        LoadingElementId = "imgLoad"
    }))
    {
        <input type="text" name="txtName" />
        <input type="submit" />
        <div id="imgLoad">加载中~~~</div>
    }

</body>
</html>
</span>

2.Controller

<span style="font-size:18px;">  /// <summary>
    /// 控制器
    /// </summary>
    public class HomeController : Controller
    {

        public ActionResult Index()
        {
            return View();
        }

        /// <summary>
        /// 异步请求的方法,返回的是时间的内容对象
        /// </summary>
        /// <returns></returns>
        public ActionResult GetDate()
        {
            System.Threading.Thread.Sleep(200);
            return Content(DateTime.Now.ToString());
        }
    }</span>

2.结果显示

3.代码分析

1.异步连接

@Ajax.ActionLink()方法,经常用到的几个参数在DEMO中已经体现,并且已经加入了详细的注释,主要用来实现异步连接的操作。并且可以对返回的内容进行操作。

2.异步表单

Ajax.BeginForm()方法,不得不说,在MVC中以后会经常用到这个方法,同上一样,Demo有详细的注释,不再多说。比如我们在做一个登录功能的时候,就可以采取异步表单。通过提交表单到后台,然后把返回的登录结果在现实到View中,挺方便的。



时间: 2024-08-26 05:32:39

MVC之AJAX异步表单的相关文章

MVC中ajax提交表单示例

页面中: @using (Ajax.BeginForm("Login", "User", new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterOk" })) { <input ...一些表单 <input type="checkbox" id="ckbrecord" name="ckbrecord&q

mvc area区域和异步表单,bootstrap简单实例

码农最怕眼高手低 今天来练习mvc Area技术和bootstrap以及异步表单的C#代码实现. 1.area区域架构对于建立复杂业务逻辑很有帮助,由  AreaRegistration.RegisterAllAreas()方法遍历路由表,获得所有注册的路由.参见 建立类库Common,下设一个文件夹BookStore 在其中建立model和controller.(注意引用System.Web.Mvc这个dll) 项目结构如图: 其中book.cs为model模型 namespace Commo

ajax form表单提交 input file中的文件

ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了解决这个问题我走了不少弯路: 1.用原生的 input file , 不支持ajax上传文件,你肯定会说可以用 ajax form表单上传了呀?不过我后面还要调用上传成功后用js处理一些对话框,所以这种方法排除 2.用了 uploadify 上传插件,弄出来能上传东西,结果不理想:因为不能判断上传的

Jquery ajax提交表单几种方法详解

[导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程 HTTP 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方

Validator验证Ajax提交表单的方法

当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form在同一个页面的情况,但是提交一个表单以后不想页面刷新或者跳转,那么我们考虑到的就是Ajax提交表单,那么如何让Jquery的validator插件也可以对异步提交的表单进行验证呢?我们继续往下看. 在这里,我就用网络上的一个例子来说明好了. 下面是一个比较常见的jquery .ajax提交表单的写法 Js代码   $("#submitButton").click(function(){ //序列化表单 var param = 

ajax提交表单、ajax实现文件上传

ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用jquery的$.ajax({..}), 支持提交普通表单,但不支持含有文件的复杂表单; ($.post 或 $.get底层用的都是$.ajax) 方式三:使用jquery插件ajaxFileUpload.js, 支持上传文件,但不支持提交表单 方式四:使用jquery.from.js,支持提交同时

异步表单提交

// 添加销售信息 add_sale_info: function () { //防止两重提交 if (this.in_syncing) { return; } var current_view = this; this.in_syncing = true; //返回订单信息一览表url var return_url = '/order/list/'; //返回销售添加信息编辑url var sale_url = '/order/add/sale/'+$('#id_pk').val()+'/in

ajax提交表单

ajax提交表单在项目中常用,前台无论是简单的html.jsp或者是使用了easyui框架,提交表单都会使用到ajax,extjs框架其实也是使用了ajax只不过对其进行了封装了,我们使用的时候就更固定了些. 总的来说ajax提交表单可以分为两种,一种是无返回结果的,就是将表单数据提交给后台,后台处理完就完了:另一种就是有返回结果的,后台执行成功或失败的信息需要返回到前台. 1,无返回结果的 最简单的就是$("#formid").submit();直接将form表单提交到后台. 2,有

关于ajax提交表单

今天主要是四个问题: 1.表单页面元素的获取: 2.按钮的值的获取: 3.按钮的值以变量提交: 4.表单的提交: 获取表单元素时用的是事件委托的方法.{犯的错误:1.用获取表格父级元素的方法获取,没有意识到表单的值是填在value里面的,而表格里面的值直接在th容器里填的 2.在考虑父级元素时没有考虑到它所有的容器都属于他的父级元素