2017-08-12 65 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"); 
      } 
     })