如何在Razor View Page中导入命名空间?
终于找到了答案。
@using MyNamespace
对于VB. Net:
@Imports Mynamespace
如果您想在应用程序中包含命名空间,请查看@拉维·阿米丽的回答。
在ASP.NETMVC 3 Preview1中,您可以在Global.asax.cs中使用此代码在所有剃刀视图上导入命名空间
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
我希望在RTM中,这可以通过Web.config部分完成。
“使用MyNamesspace”在MVC3 RTM中工作。希望这有帮助。
我找到了这个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")]
方法初始化应用程序将在global.asaxApplication_Start之前执行
第一种方法是在.cshtml文件中使用@using语句,仅将命名空间导入当前文件,第二种方法:
.cshtml
@using
在项目“#0”目录中的“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对他关于地区的提醒!他说:
Nick Silberstein
如果您在地区中工作,则必须在/Areas/<AreaName>/Views/下的Web.config中添加namespace,而不是/Views/
/Areas/<AreaName>/Views/
Web.config
namespace
/Views/
您必须知道的一个问题是,当您在Views文件夹中通过web.config导入命名空间时,该namespace被导入只是用于该文件夹中的视图。这意味着如果您想在区域视图中导入namespace,您还必须导入该区域的web.config文件中的namespace,该文件位于该区域的Views文件夹中;
Views
web.config
我认为为了在razor视图中导入命名空间,您只需要添加以下方式:
@using XX.YY.ZZ
对于图书馆
对于模型
@model MyModel
你可以试试这个
对于命名空间和库
@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>}
根据您的需要,您可以使用以下方法之一:
如果在所有后续视图中需要然后添加“使用your.domain名称;”在_ViewStart.cshtml.你可以找到更多关于这个:在哪里以及如何链接_ViewStart.cshtml布局文件?
或者在视图中添加程序集引用web.config如其他解释中所述:如何在Asp. Net MVC 3中的所有视图中实现@使用?