このような URL でクエリ文字列が渡されたかどうかを汎用ルートで判断したい
http://localhost/query/DailyLogs/1?dateOfLog='1/13/2013'
これが私の現在のルート定義です。
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "query/{controller}/{id}",
defaults: new { id = RouteParameter.Optional}
);
Route定義のオプションのアクションとしてdateOfLog値を追加するといういくつかの回答を読みました:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "query/{controller}/{id}/{dateOfLog}",
defaults: new { id = RouteParameter.Optional,
dateOfLog = RouteParameter.Optional }
);
これはうまくいかないようです。何か間違ったことをしているのかもしれません。よくわかりません。
これは私が現在問題を処理している方法ですが、Routing Engine の ModelBinding 機能を使用したいと思います。
var queryValue = Request.RequestUri.ParseQueryString();
string dateOfLog = queryValue["dateOfLog"];
ModelBinding を正しく使用する Route 定義を作成し、カスタム URL をコントローラーのパラメーターにマップする方法を教えてください。