如何在Asp.Net MVC中使用Bootstrap模式弹出窗口保存数据后返回View而不重新加载完整表单

时间:2017-02-17 18:02:05

标签: jquery asp.net-mvc

我有一个带有自动完成功能的文本框和一个按钮。点击按钮模式弹出窗口打开.Modal弹出窗口有两个文本框字段,即ProductName和Categoryame,以及一个用于将此信息保存到数据库中的按钮。 我已经成功使用modal popup保存数据。但之后我得到了这个输出{“status”:true,“message”:“Successfully Saved。”}。

但我希望使用文本框和按钮返回相同的初始视图,以便保存的产品开始出现在自动完成文本框中。 我的控制器代码是:

[HttpPost]
    public ActionResult Create(Product prod)
    {
        string message = "";
        bool status = false;
        if (ModelState.IsValid)
        {
            db.Products.Add(prod);
            db.SaveChanges();
            status = true;
            message = "Successfully Saved.";
            //string url = Url.Action("CreateProduct", "Products");
            //return Json(new { success = true });
            return new JsonResult { Data = new { status = status, message = message } };
        }
        return PartialView("Create", prod);

    }

我的jquery代码是:

function bindForm(dialog) {
        $('form', dialog).submit(function () {
            if ($("#formCrud").valid()) {
                $.ajax({
                    url: this.action,
                    type: this.method,
                    data: $(this).serialize(),
                    dataType: 'json',
                    success: function (result) {
                        if (result.success) {                                
                            alert(result.message);
                            $('#myModal2').modal('hide');

                        } else {
                            $('#myModalContent2').html(result);
                            bindForm(dialog);
                        }
                    }
                });
                return false;
            }
        });
    }

1 个答案:

答案 0 :(得分:0)

你必须改变它。

[HttpPost]
    public ActionResult Create(Product prod)
    {
        string message = "";
        bool status = false;
        if (ModelState.IsValid)
        {
            db.Products.Add(prod);
            db.SaveChanges();
            status = true;
            message = "Successfully Saved.";
            //string url = Url.Action("CreateProduct", "Products");
            //return Json(new { success = true });
            return new JsonResult { Data = new { status = status, message = message, success = true } };
        }
        return PartialView("Create", prod);

    }

您要返回的json对象中没有成功属性,因此您永远无法评估result.success。