using指令可以放在ASP.NET Razor页面的何处?

using指令可以放在ASP.NET Razor页面的何处?,asp.net,.net,razor,doctype,Asp.net,.net,Razor,Doctype,传统上,我总是将@using指令与@model指令一起放在ASP.NET Razor页面的顶部。但是,对于我的总体布局,我希望确保DOCTYPE声明位于文档的最开头,因此我希望使用将@向下推一推。你的下列内容有效吗 <!DOCTYPE html> <html> @using My.Library; <head> <title>Test web page</title> ... @使用我

传统上,我总是将
@using
指令与
@model
指令一起放在ASP.NET Razor页面的顶部。但是,对于我的总体布局,我希望确保
DOCTYPE
声明位于文档的最开头,因此我希望使用
@向下推一推。你的下列内容有效吗

<!DOCTYPE html>
<html>
    @using My.Library;
    <head>
        <title>Test web page</title>
        ...

@使用我的图书馆;
测试网页
...

另外,是否有任何文档说明在Razor页面中可以使用
@using
指令?我好像找不到。例如,在其他Razor代码之后使用它是有效的,还是必须首先显示它?

它是有效的,您可以在需要该库之前的任何地方使用
@using

:

HTML标记行可以包含在代码的任何部分

因此,您可以将
DOCTYPE
放在页面顶部。

直到.Net 4.5

视图文件夹中有一个
web.config
文件,您可以在其中添加
名称空间
,该文件对所有视图都是全局的:

e、 g:



您有任何文档可以证实这一点吗?好的,所以我认为规则是
@using
指令需要位于页面上任何其他Razor代码之前,但实际上不需要位于非Razor常规HTML标记之前。除非您使用的是.Net 5和MVC,其中没有更多的web.config,请尝试使用_ViewImports.cshtml,语法示例:@using Microsoft.AspNet.Mvc.ViewFeatures
<namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Globalization" />
        <add namespace="My.Library" />
</namespaces>