2014-06-17 36 views
0

我有一個WebAPI MVC應用程序。我的api路由是/ api/*,並且運行良好。
我希望實現幾個MVC視圖,並試圖把...Web 2/MVC 5重用控制器

public ActionResult Index() 
    { 
     ViewBag.Title = "Home Page"; 

     return View(); 
    } 

...我ApiController但Viewbag不能解決。我注意到HomeController基於控制器(不是ApiController)。我需要爲我的視圖設置單獨的控制器嗎?

回答

1

是的,你需要一個單獨的控制器,因爲MVC和的WebAPI兩個diferent ASP.NET技術

Controller是MVC。它依賴於ActionResult來返回一個視圖或其他類型的結果。 返回ViewResult的操作應使用控制器

ApiController是WebAPI。它依賴於序列化來自操作的返回對象。 操作返回對象是自動序列化到JSON/XML應使用ApiController

雖然This is going to change in MVC 6

由於ASP.NET vNext中,MVC,網絡API和Web頁面框架的組成部分正在合併到一個名爲MVC 6的框架中。新框架消除了現有MVC和Web API框架之間的大量重疊。它使用一組通用的抽象來進行路由,動作選擇,過濾器,模型綁定等等。您可以使用該框架來創建UI(HTML)和Web API。