2017-02-17 17 views
1

我有一个带有自动完成功能和一个按钮的文本框。点击按钮模式弹出窗口打开.Modal弹出窗口有两个文本框字段,即ProductName和Categoryame以及一个用于将此信息保存到数据库的按钮。 我已经成功地使用模态popup.But保存数据,但之后我得到了这个输出{“status”:true,“message”:“成功保存。”}。如何在保存数据后使用Bootstrap模式弹出窗口在Asp.Net中保存数据后无需重新加载完整表单MVC

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

[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; 
      } 
     }); 
    } 

回答

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。

+0

我更正了我的json对象,但现在我仍然将{“status”:true,“message”:“Success Saved。”,“success”:true}作为输出。 –

+0

Thankyou Federico,你是对的,但我又犯了一个错误。我没有调用bindForm()函数。 –

相关问题