我在其他帖子中读到,您可以将业务逻辑放在VS2013 MVC项目中的“任何地方”,我的意思是“可能在Controllers文件夹之外”。
然而,当我在我的项目中创建一个App_Code文件夹,并在其中放入业务逻辑类时,(将build属性设置为Compile,而不是Content)我得到一个编译错误,在下面,代码编辑器intellisense将无法识别以下内容中的.Caching:
using System.Runtime.Caching;
如果我将类移回到控制器的子文件夹中,没问题,.caching会出现在intellisense中,并且不会发生编译错误。
为什么会出现这种情况的任何解释,以及我如何调整我的项目以允许业务逻辑类在Controllers文件夹之外正确运行,将不胜感激。
答案 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应用程序中引用此项目