.NET MVC3中的命名空间引用VB中的Razor视图?

时间:2011-01-25 02:59:34

标签: vb.net asp.net-mvc-3 rtm razor

如何使用Razor视图引擎引用.NET MVC3中的命名空间?

我知道这可以在C#中完成:

@using Namespace;

然而在VB中,这似乎不起作用:

@Imports Namespace

(我在谈论.vbhtml文件)

2 个答案:

答案 0 :(得分:3)

您正在使用VB的正确语法:

@Imports My.Full.Namespace

我在快速游戏中发现的是:

  • 添加@Imports语句后,智能感知将获取MVC项目的子命名空间 - 必须是完整的命名空间。
  • 如果您正在引用当前MVC项目之外的命名空间,那么除非您进行重建,否则智能感知将无法获取它。

答案 1 :(得分:0)

@Jonathan是正确的,这是正确的语法,它需要扩展方法的完整命名空间。

如果仍然无法识别您的扩展方法,则可能需要在自己的命名空间之前插入此导入:

@Imports System.Web.Mvc.HtmlHelper

当我添加这个intellisense提供我的扩展方法。我认为这与引用System.Web.WebPages有关,它也定义了一个HtmlHelper类。也许这就解释了为什么将代码迁移到新项目可以解决问题。

不幸的是,导入语句的intellisense问题仍然存在,它不提供命名空间。

我意识到这个问题的答案有些晚了,但这让我有一半的时间 - 希望它可以帮助别人避免这个陷阱。