У меня есть код Javascript, передающий объект, смоделированный точно так же, как мой объект C #
CreateItemModel
. Однако проблема в моем коде контроллера - это свойство, которое было установлено в javascript как new String();
и десериализовано в C # как null
.
Javascript код
$('[step="4"]').click(function () {
//shortened for brevety
var _model = new Object();
_model.ItemDesc = new String();
$.ajax({
type: "POST",
url: 'CreateItem',
data: _model,
success: function (msg) {
status = JSON.stringify(msg);
console.log(msg);
},
error: function (msg) {
status = JSON.stringify(msg);
console.log(msg);
}
});
});
C # Код контроллера
[HttpPost]
public async Task<JsonResult> CreateItemCallAsync(CreateItemModel item)
{
//breakpoint here
var test = item.ItemDesc; //the property is null here
}
Я ожидал здесь значение string.empty
, но вместо этого я получаю значение null
. Я попытался установить _model.ItemDesc
в ''
""
new String()
в своем коде Javascript. Но всегда получаю null
значение.
Вопросы:
- Почему происходит такое поведение?
- Как получить ожидаемое значение?