【问题标题】:Mvc4 App_Code class not visible to _Layout.cshtmlMvc4 App_Code 类对 _Layout.cshtml 不可见
【发布时间】:2013-11-05 22:28:08
【问题描述】:

我创建了一个mvc4 项目。这是Visual Studio Express 2012 for Web制作的标准互联网项目。我在其中添加了一个名为App_Code 的文件夹,在其中我创建了一个名为SessionHandler.csclass。 然后我打开 /views/shared/_Layout.cshtml 中的预制文件 _Layout.cshtml。在那里我尝试调用我创建的课程SessionHandler.cs,但它似乎无法找到课程。

如何使SessionHandler.cs 类对_Layout.cshtml 可见?


编辑:

只是添加一些关于我的项目的更多信息:

结构:

SessionHandler.cs 文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TestingGround01.App_Code
{
    public class SessionHandler
    {
    }
}

【问题讨论】:

    标签: c# asp.net-mvc-4 app-code


    【解决方案1】:

    在位于 Views 文件夹内的 Web.config 文件中,放置一个命名空间包含。

    <pages>
      <namespaces>
        <add namespace="TestingGround01.App_Code">
      </namespaces>
    </pages>
    

    澄清一下,这对于外部引用很有用。在你的情况下,如果你只是坚持一个

    @using TestingGround01.App_Code
    

    在您的 _layout.cshmtl 文件的顶部,它应该可以很好地解析引用。

    然后,您可以在 _layout 中实例化您的类。

    @{ var s = new SessionHandler(); }
    

    【讨论】:

    • 我猜RootNamespace需要换成我的项目名
    • @MichaelTotKorsgaard 正确。这只是一个例子。这将是 App_Code 中 SessionHandler.cs 文件的完整命名空间
    • @MichaelTotKorsgaard 您的 SessionHandler.cs 文件的完整命名空间是什么?
    • 它需要被添加到你的views文件夹里面的web.config文件中。它负责查看命名空间包含
    • 你的app_code文件夹中的代码文件的构建动作是否设置为编译?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2013-09-03
    • 1970-01-01
    相关资源
    最近更新 更多