我的目的是将字符串呈现为视图。这就是我所做的:
public string RenderRazorViewToString(string viewName, object model, string controllerName)
{
ViewData.Model = model;
Type controllerType = Type.GetType(controllerName + "Controller");
object controller = Activator.CreateInstance(controllerType);
RouteData rd = new System.Web.Routing.RouteData();
rd.Values.Add("controller", "Account");
((ControllerBase)(controller)).ControllerContext = new ControllerContext(HttpContext, rd, (ControllerBase)controller);
ControllerContext cc = ((ControllerBase)(controller)).ControllerContext;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindView(cc, viewName, null);
var viewContext = new ViewContext(cc, viewResult.View, ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(cc, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
基本上,此代码的作用是呈现在以下位置找到的视图文件:
var viewResult = ViewEngines.Engines.FindView(cc, viewName, null);
并将其呈现在:
viewResult.View.Render(viewContext, sw);
我想要的是找不到视图文件,但我希望将存储在我的数据库中的视图呈现为字符串。所以我需要的是:
我怎样才能实现这个目标?
答案 0 :(得分:-1)
您只需使用
即可@Html.Raw(mystring)
mystring将是存储在数据库中的视图内容