誰もルーティングに手伝ってくれませんか? で同じタイプのパラメータで異なるGETメソッドを実行するためのルーティング
は
config.Routes.MapHttpRoute(DefaultApi",
routeTemplate: "{controller}/{uid}",
defaults: new {uid = RouteParameter.Optional}
);
とコントローラ
[RoutePrefix("AppartmentCategory")]
public class AppartmentCategoryController : ApiController
{
[HttpGet]
public IHttpActionResult Get(Guid uid){...}
[HttpGet]
[Route("{propertyUid?}")]
public IHttpActionResult GetList(Guid propertyUid){...}
}
での2つの方法が、私がリクエスト
1. http://.../AppartmentCategory/043F61D1-7194-E611-A98B-9C5C8E0005FA
と
を送信しようとすると、私はこのマッピングを持っている WebApiConfig方法 公共IHttpActionResult GetListの(GUID propertyUid)を実行し、両方のケースで2. http://.../AppartmentCategory/?propertyUid=2fdc968d-0192-e611-a98b-9c5c8e0005fa
私が最初の要求のために公共IHttpActionResultゲット(GUIDはuid)方法を実行するための修正SHOLD何?
従来のルーティングと属性ルーティングを混在させています。 'config.MapHttpAttributeRoutes()'は、慣習的なルートの前にマップされているので、最初に 'GetLists'をヒットします。技術的には、どちらのアクションも同様のルートを持ちます。あなたはもう少し二つの行動を区別しようとするべきです。 – Nkosi