コードを処理するカスタム ルートを使用することは可能ですか?
たとえば、クライアントがサーバーを要求しhttp://server.com/api/v1/json/profile/
、私のコードが呼び出しApiController
、パラメータをMyAction
持つアクション、、。version=1
format=json
action=profile
質問する
101 次
2 に答える
1
「アクション」パラメーターの名前を別の名前に変更することから始めます。そうしないと、ルートが非常に混乱します(目的と呼ぶのでしょうか?)。また、次のようなものがうまくいくと思います:
routes.MapRoute(
// name of your route
"MyRoute",
// route template
"api/v{version}/{format}/{purpose}",
// default route values
new {
controller = "ApiController",
action = "MyAction",
},
// constraints placed on parameters (make sure they are valid)
new {
version = @"^\d+$", // number only (can also include decimals)
format = @"^(json|text|xml)$", // if you want filtering...
}
);
それで:
public ApiController : Controller
{
public ActionResult MyAction(Int32 version, String format, String purpose)
{
throw new NotImplementedException();
}
}
于 2012-04-09T13:14:32.027 に答える
1
このようなもの?コントローラーのアクションと競合しないように、アクションには別のパラメーター名を使用する必要があります。
.MapRoute("name", "api/v{version}/{format}/{_action}", new { controller = "ApiController", action = "MyAction" });
EDITはあなたが望むようにバージョンを動かしました。
于 2012-04-09T13:09:15.230 に答える