2017-08-12 61 views
-1

我想從控制器返回JSON值以查看何時加載視圖我的控制器代碼如下所示。如何在[httpget]控制器中返回json值?

[HttpGet] 
    public ActionResult Add() 
    { 
     List<selectdata_Result> tbl = new List<selectdata_Result>(); 
     tbl = context.selectdata("", "", "", "").ToList(); 
     string s = JsonConvert.SerializeObject(tbl); 
     return Json(s, JsonRequestBehavior.AllowGet); 
    } 

和我的看法是低於

  $.ajax({ 
       url: '@Url.Action("Add", "Home")', 
       type: 'GET', 
       success: function (response) { 
        alert(response); 
       }, 
       error: function (respons) { 
        alert("error"); 
       } 
      }) 

我想在警報(響應)的json值。給我一些解決方案。當我的頁面加載是我的JSON值是得到

+0

刪除'字符串s = JsonConvert.SerializeObject( tbl);' - 它只是'返回Json(tbl,JsonRequestBehavior.AllowGet);'這將序列化您的收藏(您目前序列化它兩次)。然後你在成功回調中使用循環遍歷集合) –

+0

@StephenMuecke它的工作,當我點擊按鈕goto [http]控制器並返回正確的json數據。但在[httpget]相同的方法它不工作 –

+0

當然它會(但你是什麼意思'[http]'控制器 - 你的意思是一個'[HttpPost]'方法?)這沒有什麼區別,因爲你已經有'JsonRequestBehavior .AllowGet' –

回答

0

嘗試

$.ajax({ 
       url: '@Url.Action("Add", "Home")', 
       type: 'GET', 
       dataType: 'JSON', 
       success: function (response) { 
        alert(response); 
       }, 
       error: function (respons) { 
        alert("error"); 
       } 
      }) 
+0

與OP已經使用的代碼有什麼不同?(添加'dataType:'JSON','沒有區別) –

0

隨着清除管線字符串s = JsonConvert.SerializeObject(TBL);從控制器,它會工作。下面是代碼:

[HttpGet] 
public ActionResult Add() 
{ 
    List<selectdata_Result> tbl = new List<selectdata_Result>(); 
    tbl = context.selectdata("", "", "", "").ToList(); 
    return Json(tbl , JsonRequestBehavior.AllowGet); 
} 

和Ajax調用爲:

$.ajax({ 
      url: '@Url.Action("Add", "Home")', 
      type: 'GET', 
      dataType: 'json', 
      success: function (response) { 
       alert(response.data); 
      }, 
      error: function (respons) { 
       alert("error"); 
      } 
     }) 
+0

它不工作只有json值返回我的實際視圖不是返回 –

0

我會用

[HttpGet] 
    public JsonResult Add() 
    { 
     List<selectdata_Result> tbl = new List<selectdata_Result>(); 
     tbl = context.selectdata("", "", "", "").ToList(); 
     string s = JsonConvert.SerializeObject(tbl); 
     var data = new { result = s } 
     return Json(data); 
    } 

$.ajax({ 
      url: 'dom/controller/action', 
      type: 'GET', 
      success: function (response) { 
       alert(response.data); 
      }, 
      error: function (respons) { 
       alert("error"); 
      } 
     })