2016-09-15 84 views
1

我从view发送内容到controllerAJAX。它似乎运行良好,因为它碰到action method并正常执行。但是我无法将action返回的数据返回到view无法将数据从控制器返回到AJAX中查看

它缺少一些东西吗?

注意:我的确尝试调试代码,但一旦它通过操作方法,它就不会回到函数。

沿用了AJAX代码:

function CategoryChanged() { 
    var value = $("#ContentType").val(); 
    $.ajax({ 
     cache: false, 
     url: '@Url.Action("Action", "Home")', 
     type: "POST",    
     data: { code: value } 
    }).done(function (data) { 
     console.log(data) 
     var response = data;     
     if (data != null) { 
      $("#Content").val(data.content); 
     } 
    }); 

    }; 

</script> 

而控制器代码:

[HttpPost]  
    public ActionResult Action(int code) 
    { 
     using (SERVFL_DMSEntities db = new SERVFL_DMSEntities()) 
     { 
      var cust1 = db.HomePageCustomizations.Where(r => r.IsPublic == true && r.ContentType == code).OrderByDescending(r => r.ID).FirstOrDefault(); 
      string cust2 = cust1.Content; 
      return new JsonResult() 
      { 
       Data = new { Content = cust2} 
      }; 
     } 
    } 

我已经检查了网络的控制台上,它表明我收到的数据。行console.log(数据)包含所需的数据。

可能的问题 - 看到了很多这样的问题,我看到类似更改URL的响应为/Home/Action。这实际上是一个问题还是无关紧要?

+0

可以调试JS代码,看看有什么'data'实际上包含? –

+0

在done函数中:为什么要设置'var response',然后设置'vdata',然后再次使用'response'? – Finn

+0

@TimBiegeleisen在调试过程中,一旦Action方法完成,JS代码就不会被命中。 – TheFallenOne

回答

0

我希望下面的代码对你的作品..

的AJAX代码:

function CategoryChanged() { 
    var value = $("#ContentType").val(); 
    $.ajax({ 
     cache: false, 
     url: '@Url.Action("Action", "Home")', 
     type: "POST", 
     data: { code: value } 
    }).done(function (data) { 
     console.log(data) 
     $('#Content').html(data); 
    }); 
}; 

而控制器代码:

[HttpPost]  
    public ActionResult Action(int code) 
    { 
     using (SERVFL_DMSEntities db = new SERVFL_DMSEntities()) 
     { 
      var cust1 = db.HomePageCustomizations.Where(r => r.IsPublic == true && r.ContentType == code).OrderByDescending(r => r.ID).FirstOrDefault(); 
      string cust2 = cust1.Content; 
      return Content(cust2, "text/html"); 
     } 
    } 
0

尝试使用返回数据Json()方法:

[HttpPost]  
    public ActionResult Action(int code) 
    { 
     using (SERVFL_DMSEntities db = new SERVFL_DMSEntities()) 
     { 
      var cust1 = db.HomePageCustomizations.Where(r => r.IsPublic == true && r.ContentType == code).OrderByDescending(r => r.ID).FirstOrDefault(); 
      string cust2 = cust1.Content; 
      return Json(new { result = cust2 }, JsonRequestBehavior.AllowGet); 
     } 
    } 

而在你的视野:

function CategoryChanged() { 
    var value = $("#ContentType").val(); 
    $.ajax({ 
     cache: false, 
     url: '@Url.Action("Action", "Home")', 
     type: "POST", 
     data: { code: value } 
    }).done(function (data) { 
     if(data.result != undefined){ 
      $('#Content').html(data.result); 
     } 
    }); 
}; 
相关问题