我從view
發送內容到controller
到AJAX
。它似乎運行良好,因爲它碰到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
。這實際上是一個問題還是無關緊要?
可以調試JS代碼,看看有什麼'data'實際上包含? –
在done函數中:爲什麼要設置'var response',然後設置'vdata',然後再次使用'response'? – Finn
@TimBiegeleisen在調試過程中,一旦Action方法完成,JS代碼就不會被命中。 – TheFallenOne