私は、ドメイン修飾ユーザ名を引数として取るコントローラ上でアクションを作成しようとしています。期間を含む経路パラメータを使用する
public class AccountsController : ApiController
{
[HttpGet, Route("accounts/{username}")]
public IHttpActionResult Get(string username)
{
return Ok();
}
}
HTTP GET /accounts/test%40testing
を実行してOK応答を返すことができます。
資格のあるユーザー名で同様のリクエストを行うと、コントローラのアクションがヒットしません。 HTTP GET /accounts/user%40testing.org
は404応答を取得します。リクエストがアプリケーションのOWINミドルウェアに入っているのがわかります。そのため、ホストから.NETコードに移すことができると確信しています。
Web APIがこれらの値を処理する方法について特別なことがあると思いますが、MSDNのドキュメントやこれを処理する方法のヒントが見つかりません。
どのようにしてこれらの値をアクションに渡すことができますか?
IDがピリオドを含む場合、[ApiControllerは404を返します](http://stackoverflow.com/questions/13298542/apicontroller-returns-404-when-id-contains-period) –