获取Orchard CMS中PartialView的链接

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中,它不知道从哪里获得部分视图.

我该怎么办 ?

非常感谢 !

Ber*_*Roy 5

然而,更好的解决方案是采用Orchard的做事方式,使用形状.如果你这样做:

@Display.ViewEmail(SomeParameter: 42, SomeOtherParameter: "foo")
Run Code Online (Sandbox Code Playgroud)

然后在创建你的主题文件/Views命名ViewEmail.cshtml,你可以参考传递进来的性能参数Model,如果你需要他们.调用Display将导致ViewEmail形状的渲染.