Razor 大多数页面没有突出显示,编辑时报告错误 我正在升级一个解决方案,从VS2010/MVC3/NET 4到VS201/MVC4/.NET 4.5。该解决方案已经使用VS2012的项目迁移工具进行了升级,我随后将MVC3升级为4

Razor 大多数页面没有突出显示,编辑时报告错误 我正在升级一个解决方案,从VS2010/MVC3/NET 4到VS201/MVC4/.NET 4.5。该解决方案已经使用VS2012的项目迁移工具进行了升级,我随后将MVC3升级为4,razor,asp.net-mvc-4,visual-studio-2012,Razor,Asp.net Mvc 4,Visual Studio 2012,目前,Razor给我带来了麻烦。语法高亮显示只在布局页面上显示,当我尝试在视图中移动时,会出现以下对话框: 正在等待后台操作完成。此对话框将关闭 当操作完成时 或者,我收到一个错误,告诉我检查Visual Studio活动日志(C:\Users{User}\AppData\Roaming\Microsoft\VisualStudio\11.0\ActivityLog.xml),这导致了以下错误: System.NullReferenceException:对象引用未设置为实例 指一个物体。在 M

目前,Razor给我带来了麻烦。语法高亮显示只在布局页面上显示,当我尝试在视图中移动时,会出现以下对话框:

正在等待后台操作完成。此对话框将关闭 当操作完成时

或者,我收到一个错误,告诉我检查Visual Studio活动日志(C:\Users{User}\AppData\Roaming\Microsoft\VisualStudio\11.0\ActivityLog.xml),这导致了以下错误:

System.NullReferenceException:对象引用未设置为实例 指一个物体。在 Microsoft.VisualStudio.Web.HTML.Implementation.Projection.GrowingPantracker.EnsureRenoOverlap() 在 Microsoft.VisualStudio.Web.HTML.Implementation.Projection.GrowingPantracker.EnsureTrackingPoints()文件 在 Microsoft.VisualStudio.Web.HTML.Implementation.Projection.GrowingPantracker.ContextBufferChanged(对象 发件人,TextContentChangedEventArgs)位于 Microsoft.VisualStudio.Text.Utilities.GuardeOperations.RaiseEvent[TArgs](对象 发件人,EventHandler`1事件处理程序,目标参数)

日志的源列表示它来自“编辑器或编辑器扩展”。我在这里运行的是香草VS2012,除了第一方的东西(Microsoft Web Developer Tools、NuGet Package Manager和Visual Studio extensions for Windows Library for JavaScript)之外,没有任何扩展

编辑:一些附加细节。如果我创建了一个新的解决方案和MVC4项目,请添加以下行:

@RenderSection("title", false)
到布局,然后尝试在视图中定义剖面:

@section title{Stuff}

当我开始在大括号内键入“Stuff”时,我会得到相同的错误/行为。

结果是,Razor中的任何更改都会使大括号变得更…敏感。如果在布局中定义了一个截面,如下所示:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@RenderSection("title", false) - MyApp</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        @RenderSection("css",false)
    </head>
    ...
@model MyApp.Web.Models.HomeIndexModel
@section title {
    Lovely Title
}
Razor将抛出一个错误并将其扔进VisualStudio活动日志。突出显示和大多数智能感知支持也将无法工作。经过一些尝试和错误,我发现如果你基本上不把大括号放在同一条线上,它就可以正常工作。所以,这样写:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@RenderSection("title", false) - MyApp</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
        @RenderSection("css",false)
    </head>
    ...
@model MyApp.Web.Models.HomeIndexModel
@section title {
    Lovely Title
}

它可以正常工作。

我想这可能是因为我安装VS2012时遗漏了一点,因为我没有在另一台机器上重现这个问题。如果有人能试试这个,那太棒了。我能复制这个。如果在标题前后放置空格,可以将大括号放在同一行上,如:
@section title{lavely title}
此外,使用ViewBag可能比为页面标题设置一个节更好
{ViewBag.Title=“blah Title”}
@ViewBag.Title
谢谢Kyle,我可能会让他们都使用ViewBag。我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。啊,对了,我的错。谢谢你的编辑。