我在我的web項目中實現了AttributeRouting和WebApi。 我嘗試將http://localhost/apis/test?adminId=yyy
之類的網址路由到GetSomeInfo
操作。但我遇到了一些麻煩,網址http://localhost/apis/test
和http://localhost/apis/test?adminId=yyy
都轉到行動GetEntity
。它似乎不承認參數adminId
,它認爲在url中沒有參數。所以事實證明去GetEntity
行動。誰能幫我?謝謝。WebAPI Url match問題
我到目前爲止所做的工作如下所示,它不起作用。
[RoutePrefix("apis/test")]
public class SampleController : ApiController
{
[HttpGet]
[GET("")]
public string GetEntity([FromUri]string name = null, [FromUri]string id = null)
{
....
}
[HttpGet]
[GET("")]
public string GetSomeInfo([FromUri]string adminId)
{
....
}
}
被修改
在global.asax
的路線地圖代碼如下。並且我發現Url http://localhost/api/Sample?adminId=2BD48CF9-95EB-48D2-A1B2-1AFA273E586D
可以路由到GetSomeInfo
操作。沒有任何參數的網址http://localhost/api/Sample
路由到GetEntity
。這正是我想要的。我的問題是爲什麼RoutePrefix
和FromUri
不起作用?
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional }
);
什麼問題?你有錯誤嗎? – k0stya
@ k0stya抱歉錯誤的東西。我更新了我的帖子。 –