2

在我的 ASP.Net MVC 4 应用程序中,有几个地方我们要么手动将视图渲染为字符串,要么拦截渲染管道的某些部分。例如:

    public static string RenderPartialViewToString(Controller controller, string viewName, object model)
    {
        controller.ViewData.Model = model;
        try
        {
            using (System.IO.StringWriter sw = new System.IO.StringWriter())
            {

                var viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
                var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
                viewResult.View.Render(viewContext, sw);
                viewResult.ViewEngine.ReleaseView(controller.ControllerContext, viewResult.View);

                return sw.GetStringBuilder().ToString();

            }
        }
        catch (Exception ex)
        {
            return ex.ToString();
        }
    }

然而,截至今天,在使用 .Net 4.5.1 安装 Visual Studio 2013 预览版后,我们注意到返回给这些函数的 HTML 包含一大堆垃圾/调试标签。例如:

<$A$> <$B$><$C$> <$D$> class="dashboard-content jobs-view active-jobs-view"
<$E$> data-activity-type="<$F$>Active<$G$>"<$H$>> <$I$> <$J$><$K$><$L$> 
class="content-header" <$M$>> <$N$> <$O$><$P$> <$Q$> class="event-carousel-content"
<$R$>> <$S$> <$T$><$U$> <$V$> class="navbar candidate-summary-toolbar"<$W$>> 
<$X$> class="navbar-inner"<$Y$>> <$Z$> class="nav-collapse collapse"<$a$>>

他们出现的地方似乎没有任何押韵或理由,除了标签的字母每次增加一个。但是,这些标签在正常的页面生命周期中似乎并没有出现在响应流中——只有当我们手动渲染它们或以某种方式拦截管道时。

有谁知道这些标签是什么,它们来自哪里以及如何摆脱它们?

谢谢!

4

2 回答 2

2

We are looking at fixing this, but for now you should just disable Browser Link either through the toolbar button dropdown or by setting debug="false" in web.config.

于 2013-07-29T16:20:10.873 回答
1

显然我不是唯一遇到这个问题的人。在这里找到了答案:

使用 Visual Studio 2013 Preview 调试 ASP.NET MVC 应用程序时,页面使用了无效或不受支持的压缩形式

看起来您需要在 Visual Studio 中禁用浏览器链接选项。希望将来有更永久的修复可能,因为浏览器链接看起来很酷。

于 2013-06-30T02:32:40.907 回答