html - MVC 4 : How to convert string into IView?

标签 html asp.net asp.net-mvc asp.net-mvc-4 razor

我这样做的目的是将字符串渲染到 View 中。这就是我所做的:

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();
    }
}

基本上这段代码所做的是渲染一个在以下位置找到的 View 文件:

var viewResult = ViewEngines.Engines.FindView(cc, viewName, null);

并将其呈现在:

viewResult.View.Render(viewContext, sw);

我想要的不是找到 View 文件,而是我想呈现以字符串形式存储在我的数据库中的 View 。所以我需要的是:

  1. 获取数据库 View 字符串
  2. 渲染数据库 View 字符串
  3. 渲染后输出为字符串

我怎样才能做到这一点?

最佳答案

你可以简单地使用

@Html.Raw(mystring)

mystring 将是存储在数据库中的 View 内容

关于html - MVC 4 : How to convert string into IView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620157/

相关文章:

css - 在窗口滚动时制作一个绝对位置固定的div

ASP.NET/MySQL : Access denied for user '' @'localhost' (using password: NO)

c# - System.Web.Mvc 缺少对 ModelClientValidationRule 的引用

angularjs - 带有 Angular2 的 ASP MVC Web api - Http header 访问控制

html - JSTL c 在 href 中

javascript - 尝试在 JQUERY 中显示更多文本时,我无法让 .show 工作

javascript - 如何每 x 毫秒移动一个元素?

c# - 如何清除服务器端的文件上传文本 (c#)

asp.net - 编辑后如何刷新 FormView?

asp.net-mvc - View 和模型之间是否存在依赖关系?