为什么你被迫在ASP.NET MVC Views中使用完整的包名而不是"使用"关键字?

Joh*_*ith 0 c# asp.net asp.net-mvc asp.net-mvc-4

在ASP.NET MVC4中,当我想使用C#类时,我被迫使用完整的包名.例如,我通常使用:

using MyClasses.More.ExObject;

ExObject myObj = new Exobject();
Run Code Online (Sandbox Code Playgroud)

我被迫明确指定名称空间:

MyClasses.More.ExObject myObj = new MyClasses.More.ExObject();
Run Code Online (Sandbox Code Playgroud)

为什么?

kri*_*gar 6

如果在Views文件夹中打开Web.Config,也可以在那里添加名称空间,因此您不必将其添加using到任何视图的顶部.

但是,在Razor视图的顶部,不要忘记语法@using不仅仅是using,它可能是它不适合你的原因.

编辑

在Web.config中(同样,Views文件夹中的那个,而不是项目底部的那个),您可以在以下位置添加其他名称空间:

<system.web.webPages.razor>
    <host... />
    <pages>
        <!-- These are added by default when you create the MVC project -->
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
        <!-- Add your additional namespaces here -->
    </pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)

这一部分位于该<configSections>区域下方的顶部.(我所拥有的项目在第11行,没有在其上面的文件中添加任何内容.

作为旁注,如果您使用的是Visual Studio 2010,我通常需要关闭所有视图,然后重新启动Visual Studio以使其更新.如果它不能立即起作用,请记住这一点.