如何在剃刀视图页面导入命名空间?
当前回答
终于找到了答案。
@using MyNamespace
VB。Net:
@Imports Mynamespace
如果你想在整个应用程序中包含一个命名空间,可以看看@ravy amiry的答案。
其他回答
在ASP。你可以用这段代码在Global.asax.cs中导入一个命名空间到你所有的razor视图
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
我希望在RTM中可以通过Web完成。配置部分。
为图书馆
@using MyNamespace
为模型
@model MyModel
我找到了这个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/”下配置 /视图/
“使用MyNamespace”工作在MVC3 RTM。希望这能有所帮助。
推荐文章
- 如何修改标签文本?
- 我如何使用IValidatableObject?
- ASP。NET身份的默认密码散列器-它是如何工作的,它是安全的?
- _ViewStart的位置和方式。CSHTML布局文件链接?
- Visual Studio - Resx文件默认“内部”为“公共”
- 用c#解析JSON
- ASP是什么?NET Identity的IUserSecurityStampStore<TUser>接口?
- ASP。网网络。config: configSource vs.文件属性
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 在Linq中转换int到字符串到实体的问题
- <system. >之间的差异。web>和<system.webServer>?
- 为什么ASP。NET web表单需要Runat="Server"属性吗?
- 使用不同的Web。在开发和生产环境中进行配置
- 我如何添加双引号的字符串,是在一个变量?
- 最好的方法在asp.net强制https为整个网站?