【问题标题】:No HTTP resource was found that matches the request URI :(未找到与请求 URI 匹配的 HTTP 资源 :(
【发布时间】:2015-06-09 22:18:38
【问题描述】:

这是我的 webApiConfig

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

    config.Routes.MapHttpRoute(
        name: "ApiByActionWithid",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { action = "" },
        constraints: new { id = @"^[0-9]+$" });

    config.Routes.MapHttpRoute(
        name: "ApiByAction",
        routeTemplate: "api/{controller}/{action}",
        defaults: new { action = "" });

changeOrderState 操作如下所示:

public ResponseDTO ChangeOrderState(Int32 changeOrderState, string state) 
{ 
    IRestaurantManager rm = Core.CoreManager.Instance.GetService<IRestaurantManager>(); 
    return rm.ChangeOrderState(changeOrderState, state); 
}

我这样调用一个方法:

https://localhost:44302/api/Restaurant?changeOrderState=1&state=Rechazado

但它不起作用,但在其他调用中以相同的方式起作用

【问题讨论】:

  • 你能粘贴餐厅控制器吗?
  • 函数是:public ResponseDTO ChangeOrderState(Int32 changeOrderState, string state) { IRestaurantManager rm = Core.CoreManager.Instance.GetService();返回 rm.ChangeOrderState(changeOrderState, state); }
  • 和 mu 餐厅控制器扩展自 apiController
  • 如果没有指定默认操作,网址不会是这样的:api/Restaurant/ChangeOrderState?changeOrderState=1&state=Rechazado
  • 我做了这个但是没用:/

标签: asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

我解决了这个问题,答案是在 te 方法 [HttpGet] 中添加下一个,我的操作如下所示:

[HttpGet]
    public ResponseDTO ChangeOrderState(int changeOrderState, string state="")
    {
        IRestaurantManager rm = Core.CoreManager.Instance.GetService<IRestaurantManager>();
        return rm.ChangeOrderState(changeOrderState, state);
    }

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2016-12-01
    • 2016-01-26
    • 2017-06-17
    • 1970-01-01
    相关资源
    最近更新 更多