說我有一個控制器的方法:WebAPI路由 - 如何使默認路由忽略命名方法?
Get()
[HttpGet]
FindSomeone()
我有一個默認路由,並用行動路線:routeTemplate: 「API/{控制器}/{行動}」。
當我打電話給/ mycontroller/FindSomeone時失敗,但多個匹配路徑失敗錯誤當我打電話給GET/mycontroller /時。
有沒有辦法讓默認路由只匹配Get()方法,並跳過FindSomeone()方法?
說我有一個控制器的方法:WebAPI路由 - 如何使默認路由忽略命名方法?
Get()
[HttpGet]
FindSomeone()
我有一個默認路由,並用行動路線:routeTemplate: 「API/{控制器}/{行動}」。
當我打電話給/ mycontroller/FindSomeone時失敗,但多個匹配路徑失敗錯誤當我打電話給GET/mycontroller /時。
有沒有辦法讓默認路由只匹配Get()方法,並跳過FindSomeone()方法?
聲明默認Get
行動在主所有控制器路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional, action ="Get" }
);
這會禁用所有的東西但是Get - 我仍然需要POST/HEAD/etc。 – Evgeni 2013-03-21 00:19:15
它不會禁用任何東西。其他操作(POST,DELETE等)將繼續工作。它只在url中未指定時定義默認操作。 – 2013-03-21 10:50:08
AttributeRouting migh在這種情況下工作,更好地爲您。它應該是因爲這兩種方法有一個Get屬性裝潢簡單,
[RoutePrefix("mycontroller")
public class MyController
{
[GET("")]
Get()
[GET("FindSomeone")]
FindSomeone()
}
這將使可作爲和myController的myController的/ FindSomeone這些方法。
我看過它,問題是當你去GET/mycontroller/- 這兩個會衝突,因爲它們都是GET。 – Evgeni 2013-03-23 12:24:24
爲什麼不調用'/ mycontroller/get' – 2013-03-21 06:28:06