Controllers文件夹之外的业务层代码会出现编译错误

时间:2014-03-07 03:12:07

标签: c# asp.net-mvc

我在其他帖子中读到,您可以将业务逻辑放在VS2013 MVC项目中的“任何地方”,我的意思是“可能在Controllers文件夹之外”。

然而,当我在我的项目中创建一个App_Code文件夹,并在其中放入业务逻辑类时,(将build属性设置为Compile,而不是Content)我得到一个编译错误,在下面,代码编辑器intellisense将无法识别以下内容中的.Caching:

using System.Runtime.Caching;

如果我将类移回到控制器的子文件夹中,没问题,.caching会出现在intellisense中,并且不会发生编译错误。

为什么会出现这种情况的任何解释,以及我如何调整我的项目以允许业务逻辑类在Controllers文件夹之外正确运行,将不胜感激。

3 个答案:

答案 0 :(得分:1)

向您的解决方案添加业务层类库项目,然后将此业务层类库项目的引用添加到您的MVC项目。

答案 1 :(得分:1)

App_Code文件夹包含在运行时编译的代码。

请参阅以下参考:http://msdn.microsoft.com/en-us/library/t990ks23.aspx

如果您有业务逻辑,最好将其放入外部(来自网站)库以增加重用并实现更好的分区。

答案 2 :(得分:1)

首先,MVC的App_Code文件夹没有这样的内容。

<强>为什么吗

嗯,App_Code概念适用于 网站项目 ,但是,MVC是 Web应用程序项目 这是模式的框架或实现,可以更接近HTTP协议和Web请求,并将关注点分离到表示(视图),请求处理程序(控制器)和模型中。因此,不要指望它与App_Code

一起使用

<强>建议

在同一个VS解决方案中创建/添加 类库 项目,您可以在其中保留所有业务逻辑,然后在MVC应用程序中引用此项目