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

时间:2017-04-14 20:11:49

标签: routing asp.net-web-api2

我正在尝试创建一个简单的表单路径(在以下路由模板" param"是唯一的变量):

config.Routes.MapHttpRoute(         名称:" RouteName",         routeTemplate:" / ActionName / {param}",         默认值:new {controller =" ControllerName",action =" ActionName" }       );

(param不是可选的)。

为简单起见,这是我的WebApiConfig.Register()方法中唯一的路径。不,没有调用config.MapHttpAttributeRoutes();

然而,似乎找不到这样的路线,如:

本地主机:XXX / ActionName / PARAM =等等

本地主机:XXX / ActionName /嗒嗒

如果我的路线定义如下,那么看看会发生什么:

config.Routes.MapHttpRoute(         名称:" RouteName",         routeTemplate:" Controller / ActionName / {param}",         默认值:new {controller =" ControllerName",action =" ActionName" }       );

并且这样调用:

本地主机:XXX /控制器/ ActionName / PARAM =等等

本地主机:XXX /控制器/ ActionName /嗒嗒

仍然没有快乐。我错过了什么或者Web API没有使用默认对象映射控制器吗?

1 个答案:

答案 0 :(得分:0)

感谢您回复Nkosi。

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

如果我将“param”添加到我的默认对象,如下所示: new {controller =“ControllerName”,action =“ActionName”,param = RouteParameter.Optional}

(即使它是必需的参数)然后一切正常。除非我这样做,否则我不能使用带有命名参数的查询字符串格式

本地主机:XXX / ActionName / PARAM =等等

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

本地主机:XXX / ActionName /嗒嗒

再次感谢您想要查看它。