Я хочу, чтобы часть моей модели была доступна для JavaScript моей страницы, поэтому я включаю в модель следующий тег сценария:
<script type="text/javascript">
var filter = @Html.Raw(@Json.Encode(Model.Filter));
</script>
Объект filter
является фильтром для последующих запросов, которые выполняются через AJAX:
<script type="text/javascript">
function DownloadData() {
$.ajax({
url: '@Url.Action("GetData")',
type: "POST",
data: filter,
success: function (data) {
}
});
}
</script>
Все работает нормально, но с одной стороны: строковые свойства filter
не null
, а "null"
. Я еще не трогал переменную filter
в моем JavaScript
Модель:
public class SellOffersFilter
{
public int MinAge { get; set; }
public string Country { get; set; }
public string City { get; set; }
}
Контроллер:
public ActionResult SellOffersGetPage(SellOffersFilter filter)
{
//here both filter.Country and filter.City are equal to "null"
}
Форма POST выглядит как MinAge=0&Country=null&City=null
, а отладчик JavaScript показывает, что filter.Country
равен null
, а не "null"
.
Есть ли способ заставить jQuery не упаковывать поля фильтра в запрос POST, если они null
? Или другой простой способ передать null
значения через jQuery.ajax()
?