何时在ASP.Net MVC 5中使用我的剃刀语法视图中的@using

Unb*_*ble 4 c# asp.net asp.net-mvc razor asp.net-mvc-5

是的,我在谷歌搜索它我找不到确切的答案.

那么,什么时候@using SomeModel在我的剃刀语法视图中使用.我是ASP.net MVC 5的新手,我知道每个视图都可以强烈绑定到模型或viewModel,我们使用@model ModelName.当我必须@using在我的剃刀视图中使用时会出现什么情况.任何例子都将受到高度赞赏.

Fed*_*uma 5

每次需要在视图中导入命名空间时.这与在标准C#代码文件中导入命名空间时相同.

因此,如果您需要使用在与View之类不同的命名空间中声明的类型,则需要using在使用该类型之前添加语句.

@using OtherNamespace

@{
    var example = new ExampleClass(); // full name is OtherNamespace.ExampleClass
}
Run Code Online (Sandbox Code Playgroud)

请注意,在MVC 5中的视图中导入名称空间还有另一种方法,它使用Web.config位于"Views"文件夹中的文件(请注意,这不是全局 Web.config文件).您可以通过添加以下部分来添加更多名称空间:

<system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="OtherNamespace" />
        </namespaces>
    </pages>
</system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)

这样您就不需要@using.cshtml文件中添加语句.

[编辑]

关于@model视图中的语句,基本上有两种选择:

@using MyNamespace.MyNestedNamespace
@model MyModel
Run Code Online (Sandbox Code Playgroud)

或者,如果您认为您不需要该命名空间中的任何其他类型:

@model MyNamespace.MyNestedNamespace.MyModel
Run Code Online (Sandbox Code Playgroud)

没有真正的区别,由您认为对于该视图更好.