C# 《剃刀与南希》中的智能感知

C# 《剃刀与南希》中的智能感知,c#,.net,razor,nancy,C#,.net,Razor,Nancy,我使用Visual Studio 2013在.Net 4.5.1中启动了一个新项目。 作为视图引擎,我使用的是Razor。 一切都可以构建和工作,但我希望intellisense不使用完整的名称空间。 这可能吗 这是我的web.config: <configuration> <configSections> <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSect

我使用Visual Studio 2013在.Net 4.5.1中启动了一个新项目。 作为视图引擎,我使用的是Razor。 一切都可以构建和工作,但我希望intellisense不使用完整的名称空间。 这可能吗

这是我的web.config:

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

  <razor disableAutoIncludeModelNamespace="false">
    <assemblies>
      <add assembly="IC.Resources" />
    </assemblies>
    <namespaces>
      <add namespace="IC.Web.Client.Models" />
      <add namespace="IC.Resources" />
    </namespaces>
  </razor>

  <system.web.webPages.razor>
    <pages pageBaseType="Nancy.ViewEngines.Razor.NancyRazorViewBase">
      <namespaces>
        <add namespace="Nancy.ViewEngines.Razor"/>
        <add namespace="IC.Web.Client.Models" />
        <add namespace="IC.Resources" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
</configuration>
但我不想在每一页上重复这一点。 我试着只在布局页面中添加using,但这不起作用

@{ Layout = "_layout.cshtml"; }

如果将System.Object定义添加到pageBaseType,则不需要添加这两个using语句

<system.web.webPages.razor>
    <pages pageBaseType="Nancy.ViewEngines.Razor.NancyRazorViewBase`1[[System.Object]]">
        <namespaces>
            <add namespace="Nancy.ViewEngines.Razor" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

如果将System.Object定义添加到pageBaseType,则不需要添加这两个using语句

<system.web.webPages.razor>
    <pages pageBaseType="Nancy.ViewEngines.Razor.NancyRazorViewBase`1[[System.Object]]">
        <namespaces>
            <add namespace="Nancy.ViewEngines.Razor" />
        </namespaces>
    </pages>
</system.web.webPages.razor>


非常有用!但是你能解释一下“`1[[System.Object]]”语句吗?它是.net中某个地方的类型定义。我以前在泛型实例上使用p.GetType().Name时见过这种情况。最初的定义是“Nancy.ViewEngines.Razor.NancyRazorViewBase”。别问我为什么。真的很有用!但是你能解释一下“`1[[System.Object]]”语句吗?它是.net中某个地方的类型定义。我以前在泛型实例上使用p.GetType().Name时见过这种情况。最初的定义是“Nancy.ViewEngines.Razor.NancyRazorViewBase”。别问我这是为什么。
<system.web.webPages.razor>
    <pages pageBaseType="Nancy.ViewEngines.Razor.NancyRazorViewBase`1[[System.Object]]">
        <namespaces>
            <add namespace="Nancy.ViewEngines.Razor" />
        </namespaces>
    </pages>
</system.web.webPages.razor>