2016-09-15 119 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); 
     } 
    }); 
}; 
相關問題