如何在Razor View页面中导入命名空间?
终于找到了答案.
@using MyNamespace
对于VB.Net:
@Imports Mynamespace
如果要在整个应用程序中包含命名空间,请查看@ Javad_Amiry的答案.
第一种方法是@using
在.cshtml
文件中使用语句,只将名称空间导入当前文件,第二种方法:
在Views
项目" "目录中的"web.config"文件中(注意它不是项目根目录中的主要web.config),找到以下部分:
. .
您可以像这样添加自定义命名空间:
这会将命名空间添加到所有.cshtml(和/或.vbhtml)文件中; 你也可以从这里改变视图继承,如:
问候.
更新:感谢@ Nick Silberstein
他提醒有关领域!他说:
如果你在一个区域内工作,你必须namespace
在Web.config
under下/Areas/
而不是
/Views/
对于图书馆
@using MyNamespace
对于模型
@model MyModel
在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之前执行
一个问题是你必须知道的是,当您通过导入一个命名空间web.config
中Views
的文件夹,即namespace
进口JUST了意见,在文件夹中.表示如果要namespace
在区域视图中导入a ,则还必须namespace
在该区域的web.config
文件中导入位于区域Views
文件夹中的文件;
你可以试试这个
@using MyNamespace
对于命名空间和库
@using NameSpace_Name
对于模型
@model Application_Name.Models.Model_Name
用于迭代Razor页面上的列表(您必须使用foreach循环来访问列表项)
@model List@foreach (var item in Model) { } @item.srno @item.name