2012-11-16 85 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項目。

相關問題