将Web API添加到MVC 5项目(API接管)

时间:2017-02-20 12:56:12

标签: c# asp.net-web-api asp.net-web-api-routing

我已经浏览了所有堆栈的流量QA和在线教程,为我当前的MVC项目添加了一个Web API。

Web API有效,MVC仅在我将路由路径放入URL时才有效。

我希望MVC路由默认出现,但由于某种原因,它总是尝试执行API逻辑。

我希望它能让我感到很简单

到目前为止我做了什么。

Web API配置类

默认,没有真正改变任何内容

 public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {// Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

MVC配置类

默认,没有真正改变任何内容

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );



    }
}

全球配置类

 protected void Application_Start()
    {

        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);





    }

API控制器类

默认,没有真正改变任何内容

public class RegistrationController : ApiController
{
    // GET: api/Registration
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET: api/Registration/5

    public string Get(int id)
    {
        return "value";
    }

MVC主页控制器类

默认,没有真正改变任何内容

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

这是我得到的错误 enter image description here

0 个答案:

没有答案