1

メッセージ交換用の JSON 形式を許可する WCF サービスのセットがあります。

[WebInvoke(Method = "GET", 
 ResponseFormat = WebMessageFormat.Json, 
 RequestFormat = WebMessageFormat.Json, 
 UriTemplate = "SearchStores/{accountId}/{storeName}")]
public IList<Store> SearchStores(string accountId, string storeName)

空/nullのstoreNameをメソッドに渡すにはどうすればよいですか?

次の URL を使用してメソッドを呼び出すと、404 not found エラーが発生します。

servername:port/myservice/SearchStores/1/
4

1 に答える 1

0

代わりにクエリ文字列パラメーターを使用するようにテンプレートを変更できます。

UriTemplate = "SearchStores?accountId={accountId}&storeName={storeName}"

このようにaccountIdstoreNameクエリで指定されていない場合は null になります。のみstoreNameが null であることが許可されている場合は、もちろんそのままにして、 のクエリ文字列パラメーターを使用してaccountIdを構築できます。UriTemplatestoreName

編集

クエリ文字列の使用が許可されていない場合は、 MSDN UriTemplate ドキュメントUriTemplateで説明されているように、既定の null 値を使用できます。あなたの場合:

UriTemplate = "SearchStores/{accountId}/{storeName=null}

デフォルトのヌル値を使用すると、右側のすべてのセグメントにもヌルのデフォルト値が必要になることに注意してください。たとえば、これは有効です。

UriTemplate = "SearchStores/{accountId}/{storeName=null}/{someParam=null}

しかし、これはそうではありません:

UriTemplate = "SearchStores/{accountId}/{storeName=null}/{someParam}
于 2012-10-27T23:19:40.287 に答える