Web.config添加未在文件级别应用的命名空间

时间:2015-10-13 15:25:24

标签: asp.net .net vb.net visual-studio-2013 webforms

我在Web应用程序项目中引用了一个类库(两者都在同一个解决方案中)。在Web应用程序的网页中,如果我这样做:

If MyValidation.CorrectEmailFormat(email) Then ...

... Visual Studio 2013强调了该方法,并建议我在页面顶部导入MyCompany.EmailMethods。如果我执行导入,页面编译并且方法可以正常工作。

但是,因为这些方法在应用程序中广泛使用,所以我不希望每次都在页面级别添加它们。所以我前往web.config,并做了这个:

<pages>
    <namespaces>
        <add namespace="MyCompany.EmailMethods" />
    </namespaces>
</pages>

但是,VS 提示我在每个页面的顶部执行导入,如果不执行此操作,则无法在页面中识别该方法。我做错了什么?我假设从MSDNother sources这是实现这一目标的正确方法。

Web应用程序是ASP.Net网页(4.6)。

2 个答案:

答案 0 :(得分:1)

必须将引用添加到导入的命名空间,如以下SO帖子

中所述

add-a-namespace-reference-to-all-web-application-web-pages-in-a-different-project

必须在项目属性页面的标题为导入的命名空间

的底部添加

答案 1 :(得分:0)

<pages>指令仅适用于ASPX文件。

你需要使用Razor的等效指令:

<system.web.webPages.razor>
    <pages>
        <namespaces>
            <add namespace="MyCompany.EmailMethods" />