有没有办法返回一个HTML字符串从一个部分作为JSON响应的一部分从MVC?
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); }
您可以从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); }