2013-08-22 71 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

相關問題