Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将WebAPI修改为MVC应用程序?_C#_Asp.net Mvc_Asp.net Web Api_Migrate - Fatal编程技术网

C# 如何将WebAPI修改为MVC应用程序?

C# 如何将WebAPI修改为MVC应用程序?,c#,asp.net-mvc,asp.net-web-api,migrate,C#,Asp.net Mvc,Asp.net Web Api,Migrate,我在做一个不是我自己做的项目。该项目似乎是意外地创建为WebAPI项目而不是MVC项目 我遇到了会话数据处理不正确的问题——这似乎是因为该项目不是MVC项目 有没有相对简单的方法可以通过修改引用将项目迁移到MVC,而不是创建新的MVC项目并迁移所有文件?您可以在Web API项目本身中创建ASP.NET MVC控制器和视图。只需从controller类(在System.Web.mvc中)继承控制器即可 如果您创建一个新的Web API项目(使用VS 2012、MVC4),您可以看到其中既有一个普

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

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


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

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

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

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

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

并使用NuGet安装大致正确的。Web.config文件也有一些不同。我的会话问题要求将标记设置为(MVC中的默认值),以使代码正常工作。并使用NuGet安装或多或少正确的标记。Web.config文件也有一些不同。我的会话问题要求将标记设置为(这是MVC中的默认值),以使代码正常工作。