以前,我已经找到了有关如何将MVC 4视图呈现为字符串的答案。但是,我开始使用Visual Studio 2013,现在结果与预期不符。见下文。

 <$A$><$B$> <$C$> class="panel"<$D$>> <$E$> class="cover-wrapper"<$F$>> <$G$> href="
 <$H$>/book/<$I$><$J$>1<$K$><$L$>/<$M$>"<$N$>><$O$> src="<$P$>http://www.
 example.com/images/image.jpg<$Q$>"<$R$> class="cover"<$S$> /> <$T$> href="<$U$>
 <$V$>"<$W$> target="_blank"<$X$> rel="nofollow"<$Y$> class="amazon-button"<$Z$>> <$a$>
 class="amazon-cart"<$b$>> Link →
 <$c$> class="content"<$d$>>..........


使用的代码是这样的:

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


为什么现在所有字母和美元符号都显示出来,或者我需要如何更改我的代码以获取给我可用的html的任何想法?

最佳答案

这实际上是我在夏季遇到的一个错误,请在bug and workaround处查看错误报告和Microsoft的响应。好消息是,根据MS的说法,应该在VS2013发布时进行修复。

解决方法是禁用浏览器链接功能,请参见此处browser link feature

关于asp.net-mvc - 将 Razor View 渲染为字符串而无需担心html,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18387499/

10-09 17:19