Web メソッドがクラスをパラメーターとして受け取る ASP.NET Web メソッドに JSON オブジェクトを渡しています。このクラスには int プロパティがあり、問題は、クライアントが値を入力しない場合、値が空の文字列としてサーバーに渡され、Web サーバーがそれを適切に処理できないことです。使用してみint.TryParse(value.ToString().Trim(), out temp);
ましたが、まだ次のエラーが表示されますis not valid value for Int32.
。私の質問は、空の文字列が渡されたときに int プロパティをデフォルト値の 0 に設定するにはどうすればよいですか? プロパティを文字列に変更する必要がありますか?
クライアント側の JSON オブジェクト
{ q: { "Quantity": "" } }
サーバーサイド Web メソッド
[WebMethod]
public ResponseType MethodName(MyClass q)
{
return Something();
}
C# クラス
public class MyClass
{
private int _Quantity = 0;
public int Quantity
{
get { return _Quantity; }
set
{
int temp = 0;
int.TryParse(value.ToString().Trim(), out temp);
_Quantity = temp;
}
}
}
いつものように、どんな助けも大歓迎です!
アップデート
プロパティが a になるようにクラスを変更string
しましたがget
、文字列は int に解析されてからstring
. うまくいきますが、これが最も効率的な方法ですか?
C# クラス
public class MyClass
{
private string _Quantity = string.Empty;
public string Quantity
{
get
{
int temp = 0;
int.TryParse(_Quantity, out temp);
return temp.ToString();
}
set
{
_Quantity = value.ToString().Trim();
}
}
}