Мне нужны некоторые разъяснения по 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/ предлагает хороший способ интеграции кода на стороне сервера с клиентской частью, и похоже, что он может помочь вам легко достичь того, что вы хотите.

Другие вопросы по тегам