У меня возникла странная проблема с ASP.NET MVC и отправкой сообщения AJAX. У меня есть привязанный тег на странице с id 'lnkGetExpirDates'. Когда пользователь нажимает на нее, я пытаюсь просто отправить эти жестко запрограммированные данные на свой контроллер, чтобы он мог использовать его в качестве параметров и возвращать результат обратно на страницу.AJAX Post для ASP.NET MVC 6 Метод и параметры действия контроллера - это null
Однако в контроллере параметры всегда имеют значение null/default. Пожалуйста, см. Мой код ниже и дайте мне знать, если я делаю глупую ошибку или что-то в этом роде.
Вот мой AJAX пост:
$("#lnkGetExpirDates").click(function() {
e.preventDefault();
var data = {
StartDate: "1/19/2016",
EndDate: "4/19/2016",
ProductType: "New",
Count: 1
};
$.ajax({
url: '/Products/GetExpirationDates',
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json; charset=utf-8',
dataType: 'html',
success: function (data) {
$('#ExpirationDates').val(data);
}
});
});
Вот метод действия моего контроллера:
// POST: Product/GetExpirationDates
[HttpPost]
//[ValidateAntiForgeryToken]
public IActionResult GetExpirationDates(GetExpirationDatesViewModel vm)
{
// TODO: Get expiration dates and return them in the response
return View();
}
Вот GetExpirationDatesViewModel:
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public string ProductType { get; set; }
public int Count { get; set; }
Обратите внимание, что я даже пробовал это без использования модели вообще и просто добавляю параметры к методу действий, такие как startDate, endDate, productType и Count, и все же все происходит как null.
Я очень ценю это. Он отлично работал. Можете ли вы объяснить мне, когда было бы неплохо использовать JSON.stringify? Я принимаю при отправке всей формы как JSON? –
Да. Я немного уточню ответ – Shyju
И еще один маленький вопрос. Допустим, мне нужно в конечном итоге вернуть список дат на веб-страницу. Каким будет мое возвращение в моем методе действий?Кроме того, немного странно, когда я отправляю дату, например, 26 февраля 2016 00:00:00 GMT-0500 (Восточное стандартное время) в качестве параметра, которого она не принимает. Я думаю, я могу только преобразовать его в короткую дату, а затем отправить ... –