Answers:
第一种方法是@using
在.cshtml
文件中使用use 语句,仅将名称空间导入当前文件,第二种方法是:
在Views
项目“ ”目录下的“ web.config”文件中(请注意,它不是项目根目录中的主要web.config),请找到以下部分:
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
.
.
<!-- etc -->
</namespaces>
</pages>
</system.web.webPages.razor>
您可以像这样添加自定义名称空间:
<add namespace="My.Custom" />
会将名称空间添加到所有.cshtml(和/或.vbhtml)文件中;您也可以从此处更改视图继承,例如:
<pages pageBaseType="My.Custom.MyWebViewPage">
问候。
更新:感谢@ Nick Silberstein
提醒他有关领域!他说:
如果您在某个区域内工作,则必须namespace
在Web.config
下方添加/Areas/<AreaName>/Views/
而不是
/Views/
在ASP.NET MVC 3 Preview1中,可以使用Global.asax.cs中的此代码在所有剃刀视图上导入名称空间
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
我希望在RTM中可以通过Web.config部分完成操作。
我发现了这个http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx,其中介绍了如何向所有剃刀页面添加自定义命名空间。
基本上你可以做到这一点
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
并将以下代码放入您的AssemblyInfo.cs中
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
方法InitializeApplication将在global.asax中的Application_Start之前执行
Microsoft.WebPages.Compilation.AddGlobalImport
已更改为System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
。
一个问题是你必须知道的是,当您导入通过命名空间web.config
中Views
的文件夹,即namespace
进口JUST了意见,在文件夹中。表示如果要namespace
在区域视图中导入,还必须将该导入namespace
到区域web.config
文件Views
夹中该区域的文件中;
对于命名空间和库
@using NameSpace_Name
对于模型
@model Application_Name.Models.Model_Name
用于迭代Razor页面上的列表(您必须使用foreach循环访问列表项)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
你可以试试这个
@using MyNamespace
我认为为了在剃刀视图中导入名称空间,您只需要添加以下方式:
@using XX.YY.ZZ
根据您的需要,可以使用以下方法之一:
如果需要,则在所有后续视图中添加“ using your.domainName;” 在_ViewStart.cshtml中。您可以在以下位置找到更多有关此信息:_ViewStart.cshtml布局文件在何处以及如何链接?
或按其他说明中所述在View web.config中添加程序集引用:如何在Asp.Net MVC 3中的所有视图中实现@using?