Leo*_* Le 1 asp.net-mvc content-management-system asp.net-mvc-partialview orchardcms razor
我想在Orchard CMS中将RazorView渲染为字符串,但我不知道如何获取链接到部分视图以获取字符串.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果在另一个MVC项目 - 而不是Orchard - 它可以正常使用代码:
string result = RenderRazorViewToString("~/Views/Home/PartialViewEmail.cshtml", null);
Run Code Online (Sandbox Code Playgroud)
但是在Orchard CMS中,它不知道从哪里获得部分视图.
我该怎么办 ?
非常感谢 !
然而,更好的解决方案是采用Orchard的做事方式,使用形状.如果你这样做:
@Display.ViewEmail(SomeParameter: 42, SomeOtherParameter: "foo")
Run Code Online (Sandbox Code Playgroud)
然后在创建你的主题文件/Views命名ViewEmail.cshtml,你可以参考传递进来的性能参数Model,如果你需要他们.调用Display将导致ViewEmail形状的渲染.
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |