我试图找出如何做路由以下的Web API控制器路由:的Web API与多个参数
public class MyController : ApiController
{
// POST api/MyController/GetAllRows/userName/tableName
[HttpPost]
public List<MyRows> GetAllRows(string userName, string tableName)
{
...
}
// POST api/MyController/GetRowsOfType/userName/tableName/rowType
[HttpPost]
public List<MyRows> GetRowsOfType(string userName, string tableName, string rowType)
{
...
}
}
目前,我正在使用此路由的网址:
routes.MapHttpRoute("AllRows", "api/{controller}/{action}/{userName}/{tableName}",
new
{
userName= UrlParameter.Optional,
tableName = UrlParameter.Optional
});
routes.MapHttpRoute("RowsByType", "api/{controller}/{action}/{userName}/{tableName}/{rowType}",
new
{
userName= UrlParameter.Optional,
tableName = UrlParameter.Optional,
rowType= UrlParameter.Optional
});
但是目前只有第一种方法(带有2个参数)正在工作。我是在正确的路线上,还是我的URL格式或路由完全错误?路由似乎对我来说是黑魔法...
怎样一个指定的参数是不可选?我希望第一个是必需的,第二个是可选的? – Zapnologica
路由只是更加痛苦的IMO在webapiconfig中做它,看到我的路由属性路由回答 –