Web API 2.0 路由只有一个变量段(用于输入参数)



我正在尝试创建表单的简单路由(在以下路由模板中,"参数"是唯一的变量(:

config.Routes.MapHttpRoute (
    name: "RouteName",
    routeTemplate: "/ActionName/{param}",
    defaults: new { controller = "ControllerName", action = "ActionName" }
);

(参数不是可选的(。

为了简单起见,这是我WebApiConfig.Register()方法中唯一的途径。不,没有电话config.MapHttpAttributeRoutes()

然而,当调用时似乎找不到路线:

localhost:xxx/ActionName/?param=blah

localhost:xxx/ActionName/blah

只是为了看看如果我像这样定义我的路由会发生什么:

config.Routes.MapHttpRoute (
    name: "RouteName",
    routeTemplate: "Controller/ActionName/{param}",
    defaults: new { controller = "ControllerName", action = "ActionName" }
);

并像这样称呼:

localhost:xxx/Controller/ActionName/?param=blah

localhost:xxx/Controller/ActionName/blah

仍然没有快乐。我是否缺少某些内容,或者 Web API 没有使用默认对象映射控制器?

感谢您的回复 Nkosi。

不幸的是,由于机密性,我无法发布实际代码。我得到了 404 - 在我试图解决的问题中找不到。

事实证明,如果我将"param"添加到我的默认对象中,如下所示:new { controller = "ControllerName", action = "ActionName", param = RouteParameter.Optional }

(即使它是必需的参数(那么一切正常。除非我这样做,否则我不能将查询字符串格式与命名参数一起使用

localhost:xxx/actionName/?param=blah

如果我省略它,那么我必须使用分段模式,如下所示:

本地主机:xxx/动作名称/废话

再次感谢您想看它。

相关内容

最新更新