Мне нужны некоторые разъяснения по GET и POST, касающиеся JQuery AJAX и MVC 3
Мне интересно, если это все или ничего. Что я хотел бы сделать, загрузить (GET) мою страницу обычным MVC 3. Контроллер берет Model и передает ее в View. Посмотреть и Razor сделать это. Однако, когда я отправляю сообщение обратно, я бы хотел, чтобы оно отправило выбранную информацию через AJAX. Это возможно? Или я должен делать GET и POST с AJAX?
3 ответа
Попробуйте что-то вроде ниже.
Код контроллера:
[HttpGet]
public ActionResult WhateverActionName()
{
YourViewModel yvm = new YourViewModel();
//Initalize viewmodel here
Return view(yvm);
}
[HttpPost]
public ActionResult WhateverActionName(YourViewModel yvm)
{
if (ModelState.IsValid) {
RedirectToAction("OtherAction", "OtherController")
}
return View(yvm);
}
Ajax:
$.ajax({
url: myurl
// processData: false, // you may need this option depending on service setup
success: function(){
location.href = "TARGET LOCATION";
},
type: "POST"
});
Для целевого местоположения: вам нужно будет передать ajax переменную, содержащую URL, который генерирует следующий код
@URL.Action("Action", "Controller")
Вы можете, конечно, POST, используя AJAX после GETting, используя другие средства.
Вот случайный вопрос о SO, который делает именно это:
Аякс пост в MVC 3 с несколькими формами просмотра
Действия GET и POST не должны быть связаны вообще.
http://knockoutmvc.com/ предлагает хороший способ интеграции кода на стороне сервера с клиентской частью, и похоже, что он может помочь вам легко достичь того, что вы хотите.