[英]How to load partialview content and return to ajax result?
I use Ajax : 我使用Ajax:
$.ajax({
url: url,
data: request,
dataType: "json",
success: function (data) {
$(".ad-image-wrapper").html(data.html);
},
error: function () {
}
});
and I want to load the whole html from a partial view that take some data from LoadPictureGallery. 我想从局部视图加载整个html,这些视图从LoadPictureGallery获取一些数据。 Anyway to write this properly ?
反正写得正确吗?
public ActionResult LoadPictureGallery(string xxx)
{
var model = List<ABCClass>(){ blah blah};
return new JsonResult() { html= XXXPartialView(model), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
UPDATED: What I need is Render a view as a string 更新:我需要的是将视图渲染为字符串
render a partialview to string and return it. 将局部视图呈现为字符串并返回。
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();
}
}
You should just be able to return a partialView 您应该只能够返回partialView
return PartialView(model);
And then use data itself 然后使用数据本身
success: function (data) {
$(".ad-image-wrapper").html(data);
},
Use a PartialViewResult in your action. 在操作中使用PartialViewResult 。
public PartialViewResult LoadPictureGallery(string xxx)
{
var model = List<ABCClass>(){ blah blah};
return PartialView(model);
}
and just use the raw return data in your javascript 并在您的javascript中使用原始返回数据
success: function (data) {
$(".ad-image-wrapper").html(data);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.