2014-01-22 30 views
0

我正在處理一個不是由我自己創建的項目。看起來該項目被意外創建爲WebAPI項目而不是MVC項目。如何將WebAPI修改爲MVC應用程序?

我遇到了未正確處理會話數據的問題 - 這似乎是由於該項目不是MVC項目。

是否有任何相對簡單的方法通過修改引用而不是創建一個新的MVC項目並遷移所有文件到項目遷移到MVC?

回答

3

您可以在Web API項目本身中創建ASP.NET MVC控制器和視圖。只需繼承Controller類中的控制器(在System.Web.mvc中)。

如果您創建了一個新的Web API項目(使用VS 2012,MVC4),您可以看到其中包含一個正常的MVC控制器(HomeController)和一個API控制器(ValuesController)。

  • MVC控制器必須從Controller類,這是System.Web.Mvc
  • API控制器必須從ApiController類,這是System.Web.Http
+0

而使用的NuGet安裝[微軟ASP.NET MVC包(http://www.nuget.org/packages/Microsoft.AspNet .Mvc) – rwisch45

+0

或多或少正確。 Web.config文件也有所不同。我的會話問題需要將標記設置爲(這是MVC中的默認值)才能使我的代碼正常工作。 – SamuelKDavis

1

唯一的區別繼承繼承是你繼承的控制器,或者你只是繼承本地MVC控制器類。該評論使得該路線在文件App_Start/WebApiConfig.cs上。例如:

namespace MyAplication.Controllers 
{ 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 
} 

類WebApiConfig.cs

public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      //config.Routes.MapHttpRoute(
      //name: "API Default", 
      //routeTemplate: "{controller}/{action}/{id}", 
      //defaults: new { id = RouteParameter.Optional } 
      //); 
     } 
    } 
相關問題