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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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">订单编号:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@Model.OrderID</p>
            </div>
        </div>
    </div>


    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">订单类型:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@{ var typeName = Model.OrderType == 1 ? "红包" : "抽奖"; }@typeName</p>
            </div>
        </div>
    </div>

    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">用户昵称:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@Model.UserName</p>
            </div>
        </div>
    </div>

    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">注册手机:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@Model.RegMobile</p>
            </div>
        </div>
    </div>
    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">领奖手机:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@Model.OrderMobile</p>
            </div>
        </div>
    </div>
    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">兑换金额:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@Model.Moneys</p>
            </div>
        </div>
    </div>



    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">创建时间:</label>
            <div class="col-sm-4">
                <p class="form-control-static">@Model.CreateTime.ToString("yyyy-MM-dd")</p>
            </div>
        </div>

    </div>
    <div class="col-md-6">
        <div class="form-group">
            <label class="col-sm-3 control-label">订单状态:</label>
            <div class="col-sm-4">

                @html.DropDownList("Flag", BaseHelper.OrderStatus, new {@class = "form-control"})
            </div>
        </div>
    </div>



    <div class="col-md-7">
        <div class="form-group" style="margin-left: -40px;">

            <label class="col-sm-3 control-label">处理结果:</label>
            <div class="col-sm-5">

               
                @Html.TextAreaFor(t => t.Results, new { @class = "form-control", style = "margin: 0px -392.984px 0px 0px; width: 598px; height: 105px;", placeholder = "请输入备注", maxlength=100 })
               
            </div>
        </div>
    </div>


    <div class="col-sm-12 col-sm-offset-8">
        <div class="hr-line-dashed"></div>
        @{
            if (@Model.Flag!=1)
            {
   <button class="btn btn-primary" type="submit" id="btnSave1">保存内容</button>
            }
        }
       
        <button class="btn btn-primary" type="button" onclick="closeWin()">关闭</button>
    </div>
    @Html.HiddenFor(t=>t.OrderID)
</form>

可以看到有些字段使用HtmlHelperl扩展方法的实现的。下一步通过Jquery来实现表单提交:

  $(function () {
        $("#btnSave1").on(‘click‘, submitData);
    });
   
    function submitData() {

        var flag = document.getElementById("Flag").value;
        var results = document.getElementById("Results").value;
        var id = document.getElementById("OrderID").value;
        var data = { flag: flag, Results: results, OrderID: id }
        $.post("/Manage/Orders/Edit",data, function (result) {
            if (result.resultCode == 1) {
                layer.alert(‘修改成功‘, function () {
                    //do something

                    closeWin();
                });
               
                
            } else {
                alert(result.info);
            }
        }, "json");
    }

上面的js代码很简单,获取每个字段的值,拼接成json对象,通过Ajax方式提交到后台。后台的代码也比较简单,就不贴了。

 

以上是关于MVC中处理表单提交的方式(Ajax+Jquery)的主要内容,如果未能解决你的问题,请参考以下文章

使用 ajax 和 mvc 提交带有照片数据的表单

jquery+ajax验证不通过也提交表单问题处理

Asp.Net MVC 5 Jquery 验证不适用于带有提交事件的 ajax 帖子,显示为有效表单

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

MVC_Ajax请求

用 $.ajax 提交表单是不是矛盾?