【发布时间】:2014-03-24 13:48:13
【问题描述】:
我使用 Ajax:
$.ajax({
url: url,
data: request,
dataType: "json",
success: function (data) {
$(".ad-image-wrapper").html(data.html);
},
error: function () {
}
});
我想从从 LoadPictureGallery 获取一些数据的部分视图加载整个 html。无论如何要正确地写这个?
public ActionResult LoadPictureGallery(string xxx)
{
var model = List<ABCClass>(){ blah blah};
return new JsonResult() { html= XXXPartialView(model), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
更新:我需要的是Render a view as a string
将部分视图渲染为字符串并返回。
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();
}
}
【问题讨论】:
-
"无论如何要正确地写这个?" 我觉得你的问题有点含糊。如果您没有得到完全回答您的问题的答案,您可能需要改写它以更好地概述您的问题。
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# asp.net-mvc