是的,他們是一種以string
格式返回視圖的方式。
爲此,你需要做以下的事情:
1.You需要一些方法,可以在其中與對象模型轉達您的視圖名。爲此請參考下面的代碼並添加到你的幫助類。
public static class RenderViewLib
{
public static string RenderPartialView(this Controller controller, string viewName, object model)
{
if (string.IsNullOrEmpty(viewName))
viewName = controller.ControllerContext.RouteData.GetRequiredString("action");
controller.ViewData.Model = model;
using (var sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
}
上述代碼將以字符串格式返回您的視圖。
2.Now調用上面的方法從您的JSON調用是這樣的:
[HttpPost]
public JsonResult GetData()
{
Mymodel model = new Mymodel();
JsonResult jr = null;
jr = Json(new
{
ViewHtml = this.RenderPartialView("_ViewName", model),
ViewHtml2 = this.RenderPartialView("_ViewName2", model),
IsSuccess = true
}, JsonRequestBehavior.AllowGet);
return jr;
}
,你會得到你的看法從您的通話JSON格式string
。
希望這是你在找什麼。
'return Json'只返回那個('json'),而不是html。你需要返回一個局部視圖。 –
json本身可以包含字符串形式的html,這是我希望得到的,對不起,我想我的框架有點不正確。 – Kaylee
你有一些代碼。那它的功能不如你預期的那樣?顯示實際產出和預期產出。 – mason