#jquery #ajax #asp.net-mvc
#jquery #ajax #asp.net-mvc
Вопрос:
Что я пытаюсь сделать с помощью jQuery amp; Ajax, так это собрать данные (как объект) из этой первой формы и 1) сохранить данные или 2) опубликовать их в ASP.NET контроллер (viewmodel получит данные от этого объекта), а затем перенаправит на новую страницу 1) наедине с этим объектомили 2) с помощью viewmodel, переданной с контроллера (потому что мне нужны данные для создания другой формы).
Код для первой формы:
$('.submit').on('click', function (event) {
// some irrelevant logic;
var viewModel = { DayName: picked_dayName, DayNumber: picked_day, Month: picked_month, StartTime: picked_startTime, EndTime: picked_endTime };
$.ajax({
url: '/Venue/Datepicking',
data: viewModel,
cache: false,
type: 'post',
dataType: 'json',
success: function toDetailPage(data) {
if (data.IsDataValid) {
window.location.href = '/Venue/ContactDetail';
}
}
});
});
});
Код в контроллере для представления:
[HttpPost]
public IActionResult DatePicking(BookingDataTimeViewModel viewModel)
{
return View(viewModel);
}
Код в контроллере для новой страницы, на которую я пытался направить:
[HttpGet]
public IActionResult ContactDetail(BookingDataTimeViewModel viewModel)
{
return View(viewModel);
}
Проблема в том, что я всегда возвращаюсь на домашнюю страницу, нажимая кнопку отправки. Просьба показать мне способ принудительно выполнить это или любое решение, которое решает эту проблему. Заранее спасибо.
Я использую приведенный ниже код вместо ajax:
$.post('/Venue/Datepicking', viewModel, function (result) {
window.location.href = '/Venue/ContactDetail';
});
Но результат все тот же.
Комментарии:
1. Весь смысл ajax в том, чтобы оставаться на той же странице. Если вы хотите перенаправить, сделайте обычную отправку (не используйте ajax)
2. И ваш
DatePicking()
метод возвращает представление (html), а не json, поэтому ваш код выдаст ошибку3.
$.post()
ЯВЛЯЕТСЯ ли ajax 🙂