弹出窗口中的ajax数据发布未命中控制器方法ASP.NET MVC

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了弹出窗口中的ajax数据发布未命中控制器方法ASP.NET MVC相关的知识,希望对你有一定的参考价值。

我有一个弹出表单AddorEdit.cshtml,从index.cshtml页面调用。表单正在打开,但无法将数据发布到控制器方法。

索引页

// index.cshtml //
<a class="btn btn-success" style="margin-bottom:10px;" onclick="PopupForm('@Url.Action("AddorEdit", "Vehicles")')"><i class="fa fa-plus"></i> Add New</a>
<table id="tbl_vehicle" class="table table-striped table-bordered" style="width:100%;" >
//table block
<script>
function SubmitForm(form) {            
            $.ajax({
                type: "POST",
                url: form.action,
                data: $(form).serialize(),
                success: function (date) {
                    if(data.success)
                    {
                        Popup.dialog('close');
                        dataTable.ajax.reload();
                    }
                }
            });
</script>

弹出表格

//AddorEdit.cshtml //

@using (Html.BeginForm("AddorEdit", "Vehicles", FormMethod.Post, new { onsubmit = "return SubmitForm(this)" }))
//form

控制器方法

// VehiclesController.cs //

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddorEdit([Bind(Include = "Id,VehicleType,Amount,RenewPeriod,Status")] Vehicle vehicle)
{

        if (ModelState.IsValid)
        {
            if (vehicle.Id <= 0)
            {
                vehicle.RegisteredDate = DateTime.Now;
                vehicle.RegisteredBy = "admin";
                db.Vehicle.Add(vehicle);
            }
            else
            {
                db.Entry(vehicle).State = EntityState.Modified;
            }

            db.SaveChanges();
        }
        return Json(new { success = true, message = "Saved Successfully" }, JsonRequestBehavior.AllowGet);

}

我无法检测为什么数据没有发布到控制器方法。谢谢!!!>

我有一个弹出表单AddorEdit.cshtml,它从index.cshtml页面调用。表单正在打开,但无法将数据发布到控制器方法。索引页// index.cshtml // [

答案
use like this in your Form,it will fix your problem

    @using (Html.BeginForm("AddorEdit", "Vehicles", FormMethod.Post, new { onsubmit = 
     "return SubmitForm(this)" }))
    {
       @Html.AntiForgeryToken()
    }

以上是关于弹出窗口中的ajax数据发布未命中控制器方法ASP.NET MVC的主要内容,如果未能解决你的问题,请参考以下文章

数据表 Ajax url 未命中控制器操作

在 asp.net 中的 AJAX 调用未命中成功事件

jQuery Datatables AJAX 请求未正确命中 Web API

Ajax 调用数据在 POST 期间未传递给控制器

Ajax 调用未命中 C# 方法后面的代码

MVC 将表行数据传输到引导模式弹出窗口