I’m passing an object from client to server. Properties of the object which are represented as string.empty are being converted to null during this process. I was wondering how to prevent this when the objects type supports string.empty.

console.log("DataToPost:", dataToPost);
$.ajax({
type: "POST",
contentType: 'application/json'
url: "../../csweb/Orders/SaveOrderDetails/",
data: dataToPost,
success: function (result) {
console.log(result);
},
error: function (e) {
console.error(e);
}
});

My model includes nullable DateTime objects. I cannot force all nulls to string.empty on the server.
I am using AutoMapper, so I would prefer not to have to inspect properties individually on the server.
This is a MVC feature which binds empty strings to
nulls.This logic is controlled with the ModelMetadata.ConvertEmptyStringToNull property which is used by the
DefaultModelBinder.You can set the
ConvertEmptyStringToNullwith theDisplayFormatattributeHowever if you don’t want to annotate all the properties you can create a custom model binder where you set it to false:
And you can use the ModelBinderAttribute in your action:
Or you can set it as the Default ModelBinder globally in your Global.asax:
You can read more about this feature here.