有没有一种方法可以从MVC的JSON响应中返回呈现部分的HTML字符串?
public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
{
if (ModelState.IsValid)
{
if(Request.IsAjaxRequest()
return PartialView("NotEvil", model);
return View(model)
}
if(Request.IsAjaxRequest())
{
return Json(new { error=true, message = PartialView("Evil",model)});
}
return View(model);
}
发布于 2011-03-19 10:28:19
您可以从PartialViewResult对象中提取html字符串,类似于此线程的答案:
PartialViewResult和ViewResult都是从ViewResultBase派生的,所以相同的方法应该适用于这两种方法。
使用上面线程中的代码,您将能够使用:
public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
{
if (ModelState.IsValid)
{
if(Request.IsAjaxRequest())
return PartialView("NotEvil", model);
return View(model)
}
if(Request.IsAjaxRequest())
{
return Json(new { error = true, message = RenderViewToString(PartialView("Evil", model))});
}
return View(model);
}
发布于 2012-04-22 16:46:58
而不是RenderViewToString
,我更喜欢这样的方法
return Json(new { Url = Url.Action("Evil", model) });
然后,您可以在javascript中捕获结果,并执行以下操作
success: function(data) {
$.post(data.Url, function(partial) {
$('#IdOfDivToUpdate').html(partial);
});
}
https://stackoverflow.com/questions/4730777
复制相似问题