4

私は非常にばかげた問題を抱えていますが、何らかの理由で、ネット上でそれに関する治療法や情報を見つけることができません.

概要: WebGet メソッドに複数のパラメーターを渡すことはできません。その場合、サーバーは HTTP 500 エラーを返し、メソッドは実行されません。私のコードとリクエストは以下の通りです。

[ServiceContract]
public class WebmailAPI {
...
[WebGet(UriTemplate= "Webmail?messagetype={messageType}&unreadonly={unreadOnly}&skip={skip}&take={take}")]
    public void Get(MessageType messageType, bool unreadOnly, int skip, int take) {
    ...
    }
 }

Global.ASAX.CS: routes.SetDefaultHttpConfiguration(new WebApiConfiguration() { EnableHelpPage = true, EnableTestClient = true }); RouteTable.Routes.MapServiceRoute("api/");

このリクエストは正常に実行されます: http://localhost:9000/api/Webmail/?messagetype=1

これは 500 エラーを返します。

http://localhost:9000/api/Webmail/?messagetype=1&unreadonly=0&skip=0&take=100

情報: VS2010 SP1 + ASP.NET 4 + Entity Framework June 2001 CTP + 最新の WebAPI

事前に助けてくれてありがとう!

PSクエリ文字列で「&」をHTMLエンコードしようとしましたが、効果はありません。

4

1 に答える 1

6

forfalseの代わりに使用:0unreadonly

http:// localhost:9000 / api / Webmail /?messagetype = 1&unreadonly = false&skip = 0&take = 100

データ型別のクエリ文字列パラメータの形式については、WCF Web HTTPプログラミングモデルの概要、特にUriTemplateクエリ文字列のパラメータとURLのセクションを参照してください。

于 2011-10-04T16:28:43.170 に答える