ASP.NET webapi路由参数

时间:2016-12-21 18:01:01

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

我正在尝试使用2个参数进行操作,1是可选的 我正在尝试

 [HttpGet, Route("movies/date/{dateMin}&{dateMax}")]

但它不起作用。 'dateMax'是可选参数,当没有给出时,它应该与dateMin的值相同 已经尝试过

 [HttpGet, Route("movies/date/{dateMin}&{dateMax?}")]

但它也没有用。 我不想要像

这样的东西
{dateMin}/{dateMax}

还有其他可能吗?

2 个答案:

答案 0 :(得分:1)

你应该在你的RouteConfig.cs

中这样做
 routes.MapRoute(
        name: "Movies",
        url: "{controller}/{action}/{dateMin}/{dateMax}",
        defaults: new { controller = "movies", action = "date", dateMax= UrlParameter.Optional }
        );

你的路线应该是这样的

"{controller}/{action}/{dateMin}/{dateMax}"

答案 1 :(得分:0)

您需要使用斜杠分隔路线中的路线参数,而不是使用查询字符串表示法(&)。

[HttpGet, Route("movies/date/{dateMin}/{dateMax?}")]
public IHttpActionResult MoviesDate(DateTime dateMin, DateTime? dateMax){
}

如果使用RoutAttribute

,则无需更改路由配置
相关问题