ASP.NET MVC Web APIのURLの最後にパラメーターとして電子メールを渡す方法は?
以下のように:
test.com/api/sales/getcustomerorders/test@test.com
getcustomerordersアクションのパラメーターとしてメールアドレスを渡したい。
クエリ文字列を使用して渡すことができます。しかし、私は上記のようにURLをフォーマットしたいと思います。
ありがとう。
ASP.NET MVC Web APIのURLの最後にパラメーターとして電子メールを渡す方法は?
以下のように:
test.com/api/sales/getcustomerorders/test@test.com
getcustomerordersアクションのパラメーターとしてメールアドレスを渡したい。
クエリ文字列を使用して渡すことができます。しかし、私は上記のようにURLをフォーマットしたいと思います。
ありがとう。
WebApiConfig でルートを「/{email}/」にします。末尾の「/」により、リクエスト URI に一致する HTTP リソースが見つかりませんでした ... を取得できなくなります。
ここでの問題は、URL にピリオドがあることです。
機能させるには、Web 構成を変更して、次の 2 つの構成を追加します。
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Haacked には relexUrlToFileSystemMapping に関するブログがありますhttp://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx
そして、IIS Express 8 にバグがあり、runAllManagedModulesForAllRequests が必要です: https://aspnetwebstack.codeplex.com/workitem/226
Scott Hanselman がこのブログ投稿でこれについて説明しています。別の方法として、特定の文字が許可されていないため、電子メールをパスの一部としてではなく、クエリ文字列パラメーターとして渡すこともできます。