我正在将view
的内容发送到controller
到AJAX
。它似乎运行良好,因为它会点击action method
并正确执行。但是,我无法从action
中获取view
返回的数据。
它遗失了什么吗?
注意:我确实尝试调试代码,但一旦通过动作方法,它就不会回到函数中。
按照 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}
};
}
}
我在控制台上检查了网络,它表示我正在接收数据。 line console.log(data)行确实包含所需的数据。
可能的问题 - 看过很多这样的问题后,我看到了将更改网址改为/Home/Action
的回复。这实际上是一个问题还是没关系?
答案 0 :(得分: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");
}
}
答案 1 :(得分: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);
}
});
};