JSON RedirecttoAction - PullRequest
       12

JSON RedirecttoAction

1 голос
/ 04 июля 2010

Я пытаюсь изменить значение в таблице из одного представления, а затем перенаправить в другое представление, используя Flash FSCommand и Json, используя следующий код:

        if (command == "nameClip") {
            var url = '<%= Url.Action("Index", "Home") %>';
            var clip = [args];
            try {
                $.post(url, { MovieName: clip }, function(data) {
                    ;
                }, 'json');
            }
            finally {
                // window.location.href = "/Demo/SWF";
            }
        }

В контроллере:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(SWF movietoplay)
    {

            var oldmovie = (from c in db.SWFs
                            where c.ID == "1"
                            select c).FirstOrDefault();

            var data = Request.Form["MovieName"].ToString();
            oldmovie.SWFName = data;
            db.SubmitChanges();
            return RedirectToAction("Show");
     }

Все работает хорошо, кроме Redirect !!

1 Ответ

2 голосов
/ 04 июля 2010

Вам необходимо выполнить перенаправление внутри успешного вызова AJAX:

$.post(url, { MovieName: clip }, function(data) {
    window.location.href = '/home/show';
}, 'json');

Перенаправление не может быть выполнено на стороне сервера, поскольку вы вызываете это действие с помощью AJAX.

Также вы указываете в своем вызове AJAX, что вы ожидаете JSON со стороны сервера, но отправляете перенаправление, которое не согласовано.Вы можете изменить действие контроллера так, чтобы он просто возвращал URL, на который клиент должен перенаправить, используя JSON:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(SWF movietoplay)
{
    ...
    return Json(new { redirectTo = Url.Action("show") });
}

, а затем:

$.post(url, { MovieName: clip }, function(data) {
    window.location.href = data.redirectTo;
}, 'json');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...