[英]How to load partialview content and return to ajax result?
我使用Ajax:
$.ajax({
url: url,
data: request,
dataType: "json",
success: function (data) {
$(".ad-image-wrapper").html(data.html);
},
error: function () {
}
});
我想從局部視圖加載整個html,這些視圖從LoadPictureGallery獲取一些數據。 反正寫得正確嗎?
public ActionResult LoadPictureGallery(string xxx)
{
var model = List<ABCClass>(){ blah blah};
return new JsonResult() { html= XXXPartialView(model), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
更新:我需要的是將視圖渲染為字符串
將局部視圖呈現為字符串並返回。
public ActionResult LoadPictureGallery(string url, string alt)
{
var picture = new PictureModel()
{
ImageUrl = url,
AlternateText = alt,
FullSizeImageUrl = url,
Title = alt
};
return new JsonResult() { Data = RenderRazorViewToString("_PhotoItem", picture), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
您應該只能夠返回partialView
return PartialView(model);
然后使用數據本身
success: function (data) {
$(".ad-image-wrapper").html(data);
},
在操作中使用PartialViewResult 。
public PartialViewResult LoadPictureGallery(string xxx)
{
var model = List<ABCClass>(){ blah blah};
return PartialView(model);
}
並在您的javascript中使用原始返回數據
success: function (data) {
$(".ad-image-wrapper").html(data);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.