Мы ссылающегося контроллер веб-API следующим образом: -Web API deserialising Аякса размещены нулевые значения, как «нулевой» строка
var foo = ...; // may be null.
...
var data = { Foo: foo, ... };
$.ajax({
url: ...
type: 'POST'
data: data,
});
Когда данные deserialised на сервере в нашей модели: -
public class BarController : ApiController
{
public void Post(Bar bar)
{
...
}
}
public class Bar
{
public string Foo { get; set; }
...
}
Значение "null"
связано с Foo
вместо null
.
Для деловых целей, которые мы используем, используется тип контента www-form-urlencoded
, а не JSON.
Это, кажется, не представляется возможным заменить встроенный в FormUrlEncodedMediaTypeFormatter
, как он опирается на ряд внутренних классов (в частности, инстанцирует FormUrlEncodedParser
, и кажется, нет ни одного крючка, чтобы расширить свое поведение).
Проблема заключается в том, что FormUrlEncodedParser
интерпретирует ввод как "null"
, а не null
.
Есть ли способ иметь веб-api для привязки null
, а не "null"
к Foo?
С другой стороны, есть способ, чтобы иметь JQuery опустить ключ для любого null
значения из data
переданного $.ajax
?
Какая модель выполняет действие вашего контроллера как параметр и как оно выглядит как подпись? –
Почему бы просто не оставить объекты, которые вы хотите «пустым»? –
Объект генерируется в другом месте, а свойство не всегда равно null. –