如何将Web API修改为MVC应用程序?

时间:2014-01-22 19:25:29

标签: c# asp.net-mvc asp.net-web-api migrate

我正在开发一个我自己创建的项目。看来该项目是作为WebAPI项目意外创建的,而不是MVC项目。

我遇到了会话数据无法正确处理的问题 - 这是因为该项目不是MVC项目。

是否有通过修改引用而不是创建新的MVC项目并将所有文件迁移过来将项目迁移到MVC的相对简单的方法?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

唯一的区别是您继承的控制器,或者您只是从本机MVC Controller类继承。该评论使该路线存档于App_Start / WebApiConfig.cs。例如:

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

Class 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 }
          //);
        }
    }