2017-07-19 52 views
-1

我經歷了很多鏈接,但我認爲我發現我的問題是完全不同的。 Json是從控制器返回的,但它會收到警報,並且消息顯示在空白窗口中。我只想提醒它。從控制器返回Json到View中的警報

我的AJAX:

<script> 
    function confirm() { 
     $.ajax({ 
      url: '/Form/tabledata', 
      type: 'POST', 

      data: $('#postForm').serialize(), 
      dataType: 'json', 
      success: function (data) { 
       alert(data); 

      }, 
      error: function (data) { 
       alert(data); 
       // location.reload(true); 
      } 
     }); 
    } 
</script> 

我的控制器:

[HttpPost] 
    public JsonResult tabledata(IEnumerable<tabledata> data) 
    { 
     try 
     { 
      DataColumn[] dtcs = new DataColumn[5] { 
      new DataColumn("menu_item_id", typeof(int)), 
      new DataColumn("menu_item_name", typeof(string)), 
      new DataColumn("menu_rate", typeof(string)), 
      new DataColumn("qty", typeof(string)), 
      new DataColumn("total", typeof(string)) 
      }; 
      var dt = new DataTable(); 
      dt.Columns.AddRange(dtcs); 
      foreach (tabledata td in data) 
      { 
       object[] row = { td.menu_item_id, td.menu_item_name, td.rate, td.qty, td.total }; 
       dt.Rows.Add(row); 
      } 
      return Json("successful."); 
     } 
     catch (Exception) 
     { 
      return Json("Unsuccessful.",JsonRequestBehavior.AllowGet); 
     } 
    } 

一旦驚動,我點擊 '確定',我得到的空白窗口'成功'後。

+0

從您展示的代碼中,沒有任何內容會進入空白頁面。必須有更多。 – Robert

+0

可能你沒有在某個地方返回視圖。 JSON請求應該在同一頁面上給出警報框,而不是另一個空白的警告框。 –

+0

@TetsuyaYamamoto先生我想在同一頁面上顯示警報。我沒有任何關於View.Just虛擬錶行的值發佈到控制器和Json應顯示爲警報。 –

回答

1

我覺得你需要添加event.preventDefault();之前進行ajax調用,因爲我認爲按鈕/控制點擊你正在做這個函數調用也提交表單。

+0

謝謝你,先生。是我的問題。 –