空のパラメーター (つまり &test=&another=10) が値 0.0 にマップされる C# の MVC アクションにシリアル化された文字列を投稿しています。何か提案はありますか?0.0 ではなく null に評価する値が必要です。以下のコード セグメント。どうもありがとう!
更新:値は 10、100.00、0.0、または null です。
アヤックスポスト
$.ajax({
type: method,
url: url,
data: data,
dataType: 'json',
success: settings.success,
error: settings.error,
async: !options.sync
});
MVC コントローラー
[AcceptVerbs(HttpVerbs.Post)]
[NoCache]
[JsonContractExceptionFilter]
public ActionResult Save(ViewModel data)
{
data.Test == 0.0 // should be null
モデル クラス内のプロパティ
public double? Test
{
get { return obj.test; }
set { obj.test = value; }
}
更新 2 - obj の内容
public virtual Nullable<double> Test
{
get;
set;
}
アップデート 3
public ActionResult Save([ModelBinder(typeof(MyModelBinder))] ViewModel data)
{
...
}
カスタムバインダー
public class MyModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var request = controllerContext.HttpContext.Request;
// Default binder
var temp = base.BindModel(controllerContext, bindingContext);
// TODO - Find my property and change the value?
return temp;
}
}