如何在剃刀视图页面导入命名空间?
当前回答
根据您的需要,您可以使用以下方法之一:
在视图的第一行添加“using your.domainName;”(如果是的话) 仅在特定视图中需要) 如果在所有后续视图中需要 然后在_ViewStart.cshtml中添加"using your.domainName;"你可以找到 更多相关信息见:Where and how is _ViewStart。CSHTML布局文件链接? 或在视图web中添加程序集引用。如何在Asp中实现跨所有视图的@using。Net MVC 3?
其他回答
“使用MyNamespace”工作在MVC3 RTM。希望这能有所帮助。
您必须知道的一个问题是,当您通过web导入名称空间时。在Views文件夹中的config,该命名空间仅为该文件夹中的视图导入。意思是如果你想在一个区域视图中导入一个命名空间,你也必须在该区域的web中导入该命名空间。配置文件,位于区域的视图文件夹;
我找到了这个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.asax中,InitializeApplication方法将在Application_Start之前执行
第一种方法是在.cshtml文件中使用@using语句,只将命名空间导入当前文件,第二种方法是:
在“网络”中。在你的项目的“Views”目录下的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对区域的提醒!他说:
如果您在一个区域内工作,则必须在Web中添加名称空间。在“/ regions /<AreaName>/Views/”下配置 /视图/
我认为为了在剃刀视图中导入命名空间,你只需要添加以下方式:
@using XX.YY.ZZ
推荐文章
- 什么是Kestrel (vs IIS / Express)
- 剃刀视图抛出“名称‘模型’在当前上下文中不存在”
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- ASP。NET MVC 3 Razor:在head标签中包含JavaScript文件
- 我如何解决“HTTP错误500.19 -内部服务器错误”在IIS7.0
- 将列表序列化为JSON
- 运行计划任务的最佳方式
- Global.asax中的“解析器错误消息:无法加载类型”
- 什么时候我应该在ASP中使用异步控制器。净MVC吗?
- ASP。NET“特殊”标签
- 如何在cshtml模板中创建函数?
- 如何编辑。csproj文件
- 如何使用网络强制HTTPS。配置文件
- 如何在WebAPI上使用Swashbuckle省略Swagger文档中的方法
- 无法加载.ps1,因为在此系统上禁止执行脚本