クエリ文字列で空のパラメーターを処理する適切な方法を探しています。Web Api はクエリ文字列を "?id=1&category=" として受け入れません。これは合理的に思えますが、このケースを処理する必要があります。
迅速で汚い解決策は、サーバー側で解釈されるカスタム値を使用することです(たとえば、「(空)」など)が、私はそれに満足していません...
なにか提案を ?
ありがとう。
クエリ文字列で空のパラメーターを処理する適切な方法を探しています。Web Api はクエリ文字列を "?id=1&category=" として受け入れません。これは合理的に思えますが、このケースを処理する必要があります。
迅速で汚い解決策は、サーバー側で解釈されるカスタム値を使用することです(たとえば、「(空)」など)が、私はそれに満足していません...
なにか提案を ?
ありがとう。
過去にこれに対処した 1 つの方法は、パラメーターを保持するクラスを作成し、ModelBinder 属性を使用してクエリ パラメーターをクラス プロパティにバインドすることです。
したがって、クラスは次のようになります。
public class QueryParams
{
public string Category {get; set;}
public int Id {get; set;}
}
API コントローラーのメソッドは次のようになります。
public objectToReturn Get([ModelBinder] QueryParams)
{
//code here
}
このようにして、クエリ文字列のパラメーターの 1 つに値がない場合、単純に無視されます。
この属性を使用して、目的を達成できます。
[DisplayFormat(ConvertEmptyStringToNull = false)]
「カテゴリ」が欠落している場合、null になります。それ以外の場合、「category=」または「category=」の場合は空の文字列または空白になります。