我开始用"MVC3"了,但是我遇到了一些小问题.在我看来,当我编写如下代码时:

@if(Request.IsAuthenticated) {
    <text>Welcome <b>@Context.User.Identity.Name</b>!
    [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else {
    @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}

像@Request和@Html这样的对象表示一个错误:The name 'HTML' does not exist in the current context.

@Context、@ViewBag、@Layout、@Url等也会出现同样的情况.

见:

image

但是代码被正确编译,没有错误.问题是我不能对视图中的这些对象使用智能感知.正常吗?(我不这么认为).会发生什么事呢?

我已经重新安装了MVC 3框架,但同样的情况仍然存在.

注意:这是一个从头开始的新项目,不是MVC2migrations.这在Razor引擎和ASPX中都会发生.

这是网络.查看文件夹中的配置:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>

    <!--
        Enabling request validation in view pages would cause validation to occur
        after the input has already been processed by the controller. By default
        MVC performs request validation before a controller processes the input.
        To change this behavior apply the ValidateInputAttribute to a
        controller or action.
    -->
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />

    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

谢谢!

推荐答案

我用老的、好的、明智的微软默认解决方案解决了这个问题:重新安装所有的东西.

卸载并重新安装Visual Studio 2010和MVC 3框架.

Asp.net相关问答推荐

包含Include的低速EF核心查询

页面刷新后如何存储JS Select 数据

将 Response.Headers.Add 替换为方法属性decorator

如何根据另一个下拉列表中的 Select 从下拉列表中删除一个值?

如何在 ASP.NET 中设置自动实现属性的默认值

在 aspx 页面中使用 if else 和 eval

我可以在 .net 核心中使用 Entity Framework 6(非核心)吗?

asp.net dropdownlist - 在 db 值之前添加空行

如何从网页 (asp.net) 启动 EXE

如何从 RouteData 获取路由名称?

如何检测 ASP.net 应用程序中的 SqlServer 连接泄漏?

什么相当于 ASP.NET 中的 cron 作业(job)?

如何在 Visual Studio 2017 中使用 NPM 并安装包?

如何将 ASP.NET MVC5 身份验证添加到现有数据库

如何在 ASP.Net 网络表单中使用标签?

ASP .NET Button 事件处理程序不会在第一次单击时触发,而是在 PostBack 后的第二次单击时触发

IIS - 无法通过 ip 地址而不是 localhost 访问页面

字体真棒里面asp按钮

您将如何将 ASP.Net MVC 嵌入到现有的网站项目中?

在没有等待 #2 的情况下调用异步方法