Web API路由在ASP.NET MVC中无法正常工作

时间:2016-11-07 01:58:11

标签: asp.net-mvc-4 asp.net-web-api asp.net-web-api2 asp.net-web-api-routing

这可能很简单,而且很奇怪,我无法找出其原因。

我正在使用ASP.NET WEB API 2控制器:我有一个TransactionController,它在一个操作方法中进行了一些修改后突然停止工作。我把代码还给了我,但它已经不能用了。

所有其他控制器正常工作。所以,我决定通过创建两个新控制器来测试它:

ValueController

 public class ValueController : ApiController
    {
        public List<string> GetValues()
        {
            return new List<string>() { "1", "2"};
        }

        public List<string> GetValues (int ID)
        {
            return new List<string>() { "1", "2" };
        }
       public List<string> GetValues(int UserID, DateTime CreateDate)
       {
           return new List<string>() { "1", "2" };
       }
}

TransactionController:

 public class TransactionController : ApiController
{

    public List<string> GetTransaction(int ID)
    {
        return new List<string>() { "1", "2" };
    }
}

这是我的webApiConfig

  public static void Register(HttpConfiguration config)
    {
        config.EnableCors();

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

Global.asax中

  protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

通过网址请求项目控制器时: http://localhost:1607/api/value?ID=1 ,它点击了GetValues(int ID)动作 其他行动正常。

但问题仍然在于TransactionController。使用网址 http://localhost:1607/api/transaction?ID=1 进行请求时。它没有达到行动。

这是请求的响应: enter image description here

它返回家庭控制器中的索引视图页面。

enter image description here

有任何想法可能会发生这种情况吗?

0 个答案:

没有答案