22

ASP.NET MVC Web APIのURLの最後にパラメーターとして電子メールを渡す方法は?

以下のように:

test.com/api/sales/getcustomerorders/test@test.com

getcustomerordersアクションのパラメーターとしてメールアドレスを渡したい。

クエリ文字列を使用して渡すことができます。しかし、私は上記のようにURLをフォーマットしたいと思います。

ありがとう。

4

3 に答える 3

36

WebApiConfig でルートを「/{email}/」にします。末尾の「/」により、リクエスト URI に一致する HTTP リソースが見つかりませんでした ... を取得できなくなります。

于 2015-03-19T04:48:21.453 に答える
9

ここでの問題は、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

于 2012-10-11T19:39:11.200 に答える
7

Scott Hanselman がこのブログ投稿でこれについて説明しています。別の方法として、特定の文字が許可されていないため、電子メールをパスの一部としてではなく、クエリ文字列パラメーターとして渡すこともできます。

于 2012-10-11T16:22:53.647 に答える