MVC 6 中是否缺少控制器脚手架?

Is controller scaffolding missing in MVC 6?

在 MVC 6 中创建控制器时,我没有看到用于创建控制器方法的脚手架?它们会丢失还是在生产版本中?

如果您指的是使用 ASP.NET 5 和 MVC 6 的控制器和视图的 CRUD 脚手架,它已从 Visual Studio GUI 中分离出来并移至命令行。

您需要一个名为 CodeGenerators 的包,将其添加到您的 project.json 配置文件中:

"dependencies": {
    ...
    "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta4",
    ...
},

目前 VS 不提供 GUI 命令来执行脚手架,但你可以看看这个 link :

ASP.NET 5 (MVC6) Ground Up #4 - Scaffolding CRUD in MVC

MVC 6 中脚手架控制器的命令行语法是:

dnx。 gen 控制器-name NameOfController --dataContext DBContextName --model NameOfModel

至少截至最新的 Visual Studio 2015 更新 1,ASP.net 5 RC (update1) 脚手架已集成到 Visual Studio。

为此,请在您的 project.json 文件中包含以下内容:

"dependencies": {
    ...
    "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-*",
    ...

然后右击Controllers目录->添加->新建脚手架项就可以找到了

名称空间在 Core 1.0 中发生了变化

"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview1-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.0.0-preview1-final"

信息来自:

https://wildermuth.com/2016/05/17/Converting-an-ASP-NET-Core-RC1-Project-to-RC2

执行以下操作应该可以解决您的问题。

  1. 打开 VS2015=>工具=>自定义。
  2. Select 命令。
  3. Select 上下文菜单。
  4. Select 项目和解决方案上下文菜单|文件夹|添加。
  5. 检查 'Controller' 是否出现。
  6. 将控制器项目上移到顶部。
  7. 重启Visual Studio.

在升级到 1.1 后,很难在 VS2015 中使用它,但是如果您连接到 SQL 来构建您的实体,那么 project.json 中的以下依赖项和工具应该可以工作.

{
 "dependencies": {
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.1.0-preview4-final"
},

"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final"}
}