【问题标题】:How do you modify a WebAPI into an MVC application?如何将 WebAPI 修改为 MVC 应用程序?
【发布时间】:2014-02-13 01:15:48
【问题描述】:

我正在处理一个不是我自己创建的项目。该项目似乎是意外创建为 WebAPI 项目而不是 MVC 项目。

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以在 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

    【讨论】:

    • 并使用 NuGet 安装Microsoft ASP.NET MVC package
    • 或多或少是正确的。 Web.config 文件也有所不同。我的会话问题需要将标签 设置为 (这是 MVC 中的默认设置)才能使我的代码正常工作。
    【解决方案2】:

    唯一的区别是您继承的控制器,或者您只是从本机 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 }
              //);
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 2014-05-13
      相关资源
      最近更新 更多