WebプロジェクトにAttributeRoutingとWebApiを実装しました。そして、私はアクションのようhttp://localhost/apis/test?adminId=yyy
なURLをルーティングしようとします。GetSomeInfo
しかし、私はいくつかの問題に遭遇します。URLhttp://localhost/apis/test
とhttp://localhost/apis/test?adminId=yyy
両方がアクションにルーティングされGetEntity
ます。パラメータを認識していないようですadminId
。URLにパラメータがないと思いました。GetEntity
したがって、アクションに進むことがわかります。誰か助けてもらえますか?ありがとう。
私がこれまでにやったことは以下のようになります、それは動作しません。
[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
URLはにルーティングされます。それはまさに私が欲しいものです。私の質問は、なぜとが機能しないのですか?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 }
);