在 Visual Studio 2017 中完成后,我尝试创建一个新的控制器,但文件夹(控制器)丢失了。
我不确定我是否遗漏了什么,但我不想手动创建文件夹,以防它在以后引入新问题。
我想重新创建项目,但没有选择 Empty 作为使用 MVC 的项目,但是在阅读了几个线程之后,似乎正确的方法是选择一个空项目。
在 bin 目录下,我确实看到了 System.Web.Mvc.dll
我错过了什么吗?
在 Visual Studio 2017 中完成后,我尝试创建一个新的控制器,但文件夹(控制器)丢失了。
我不确定我是否遗漏了什么,但我不想手动创建文件夹,以防它在以后引入新问题。
我想重新创建项目,但没有选择 Empty 作为使用 MVC 的项目,但是在阅读了几个线程之后,似乎正确的方法是选择一个空项目。
在 bin 目录下,我确实看到了 System.Web.Mvc.dll
我错过了什么吗?
在创建新项目时绝对不应该使用 MVC 项目模板 - 这将添加各种可能与 Umbraco NuGet 包附带的内容发生冲突的依赖项。
使用“空”模板,然后添加 NuGet,它将为您提供运行 Umbraco 所需的依赖项。如果您之后需要从 MVC 添加其他内容,您可以在与 Umbraco 包添加的内容一致的版本中添加这些内容。
关于 Controllers 文件夹 - 这个文件夹的位置或名称并不重要。控制器通过其他方式注册。您完全可以手动创建此文件夹并随意调用它。
Controllers
我认为大多数人实际上更喜欢在 VS 解决方案中保留一个完全独立的项目。然后通过您的主项目引用该项目,以确保已编译的 DLL 包含在您的 Web 项目中 - 从而您的控制器可以被 Umbraco 网站本身使用。通过这样做,您可以清晰地分离.cs
源文件,这样您就不会在部署站点时意外地部署这些文件。为此,您当然需要将UmbracoCms.Core
NuGet 包添加到您的其他项目中才能使用 Umbraco 功能。
请记住,如果您要添加普通的 MVC 控制器(不是从 Umbraco 基本控制器继承 - 因此不会自动注册),您将需要在路由表中手动注册这些控制器才能访问它们。这与您在普通 ASP.NET MVC 项目中所做的没有什么不同,但由于默认情况下不会在 Umbraco 项目中添加它 - 您需要自己做。
有关如何执行此操作的说明,请参阅此答案:https ://stackoverflow.com/a/56972929/336105