2017-02-17 6 views
1

私はオートコンプリート機能を持つテキストボックスとボタンを1つ持っています。クリックするとモーダルポップアップが開きます。 Categoryameと1つのボタンを使用してこの情報をデータベースに保存します。 私は既にモーダルポップアップを使ってデータを保存することに成功しています。しかし、その後、私はこの出力{"status":true、 "message": "Successfully Saved"}を得ています。返信する方法Asp.NetでBootstrapモーダルポップアップを使用してデータを保存した後にフォームを再読み込みせずに表示する方法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オブジェクトにはsuccessプロパティがありません。結果としてresult.successは評価されません。

+0

私は自分のjsonオブジェクトを修正しましたが、今でも{"status":true、 "message": "Successfully Saved。"、 "success":true}を出力しています。 –

+0

フェデリコさん、ありがとうございました。しかし、私はもう一度間違いをしていました。私はbindForm()関数を呼び出していませんでした。 –

関連する問題