В ASP.NET Core 2.1 я замечаю, что с этим вопросом происходит обратное: string.empty преобразуется в ноль при передаче объекта JSON в MVC Controller
Когда я отправляю объект JSON
обратно в контроллер, у которого есть свойства с пустыми строками, они больше не преобразуются автоматически в null
.
Например, возьмите этот объект JS:
var person = {firstName:"", lastName:""};
$http.post("/app/index", person)
.then(function (response) {
// Success
}, function (error) {
// Failure
})
При привязке к модели в контроллере свойства с пустыми строками остаются как пустые строки:
//
// POST: /App
[HttpPost]
public async Task<ActionResult> Index([FromBody] AppFormDTO data)
{
....
}
Что при сохранении этого объекта в базе данных, я бы предпочел иметь значения null
вместо набора пустых строк.
Они изменили DefaultModelBinder
в ASP.NET Core 2.1
? И если так, как я могу изменить его обратно, как это было в MVC5 - где string.empty
был автоматически преобразован в null
?
ОБНОВЛЕНИЕ , чтобы добавить мою AppFormDTO
модель, для справки:
public class AppFormDTO
{
public string firstName{ get; set; }
public string lastName{ get; set; }
}