我将一个序列化字符串发布到 C# 中的 MVC 操作,其中一个空参数(即 &test=&another=10)映射到值 0.0。请问有什么建议吗?我需要将值评估为 null 而不是 0.0。下面的代码段。非常感谢!
更新:该值可以是 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;
}
}