2013-08-22 123 views
3

我以前找到了关于如何将MVC 4视图呈现为字符串的答案。但是,我开始使用Visual Studio 2013,现在结果不符合预期。见下文。将剃须刀视图呈现为字符串,而不需要扫描html

<$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?

+0

当你升级到Visual Studio 2013,你也改变你的项目(如针对.NET Framework版本,从4.0到4.5或4.5〜 4.5.1)? – devuxer

+0

@DanM我没有改变任何东西。刚刚从源代码控制中打开它,添加了DLL重新安装了一些包。我需要这样做吗? –

+0

Jed,不,我只是问,因为如果您更改了.NET Framework版本,您似乎更有可能得到类似的更改。 Visual Studio只是编写/编辑/编译的环境,如果没有代码/库/框架已经改变,你应该得到相同的结果。 – devuxer

回答

2

这实际上是我在夏天遇到的错误,请参阅微软在这里的错误报告和响应bug and workaround。好消息是,根据MS,VS2013发布时应该修复。

解决方法是禁用浏览器链接功能,在这里看到的browser link feature

相关问题