2012-11-16 50 views
2

Visual Studio 2012中的ASP.NET Web API项目模板是一个专门的MVC4项目,创建此类项目的实例后,右键单击“Controllers”文件夹向您显示触发控制器生成器的“添加>>控制器”菜单项。 (脚手架)在ASP.NET Web API Self-Host应用程序中生成控制器

另一方面,也可以在控制台应用程序中托管ASP.NET Web API服务器,该应用程序在文档中称为Self-Host应用程序。

http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api

我的问题是: 我如何使用“控制器脚手架”如果我开发一个自托管控制台应用程序?

回答

1

脚手架仍然通过软件包管理器控制台支持,例如, here

但是MVC特定的“添加控制器”对话框确实是为MVC项目文件保留的。

但是,您可以强制自己的主机项目包含此对话框。

这可以通过在项目文件中添加一行来“欺骗”视觉工作室,使其认为自己的主机应用程序是一个MVC应用程序。详情请参阅"Add Controller"/"Add View" in a hybrid MVC/WebForms ASP.NET application

这个问题,如果你:

  1. 项目根目录下创建一个控制器文件夹
  2. 鼠标右键你的自我主体项目文件和“卸载项目”
  3. 鼠标右键你自己的主机项目文件“编辑”
  4. 在Xml>项目 - > PropertyGroup下添加节点下显示的步骤
  5. 保存
  6. 鼠标右键你的自我主体项目文件,点击刷新项目

    <ProjectTypeGuids> 
        {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} 
    </ProjectTypeGuids> 
    

一旦你做到了这一点,你就可以开始与TT文件(支架)玩耍,使其更加有用/特定于自托管http://www.hanselman.com/blog/ModifyingTheDefaultCodeGenerationscaffoldingTemplatesInASPNETMVC.aspx

+0

这看起来像一个非常酷的解决方案。我做了你所说的话(并将模板文件复制到我的项目中,就像Hanselman在他的博客文章中所说)。 Visual Studio在重新加载项目后做了某种升级。我猜是这样。现在我可以打开“添加控制器”对话框,但尝试生成时会出现错误。 <<<无法检索'DemoWebApiConsole.Company'的元数据。在应用程序配置文件中找不到名为'EmployeeContext'的连接字符串。 >>>相信我,EmployeeContext确实存在于app.config文件中。 –

+0

你想从什么样的控制器/模板构建? (标准EF一个?一点点远射,但可能值得添加一个虚拟web.config,看看模板是否正在寻找网络东西而不是app.config。 –

+0

不知何故关闭和重新启动Visual Studio做了诀窍。看到上下文,但不能生成控制器说<<<上下文类型不支持>>>我正在使用MySql数据库,我想这就是问题,反正...好的解决方案。谢谢... –

0

我不认为这是现在可能的。此脚手架支持目前专用于MVC 4项目。

相关问题