首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON RedirecttoAction

JSON RedirecttoAction
EN

Stack Overflow用户
提问于 2010-07-05 03:28:21
回答 1查看 5.5K关注 0票数 3

我正在尝试从一个视图更改表中的值,然后使用闪存FSCommand和Json重定向到另一个视图,使用以下代码:

代码语言:javascript
复制
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";
  }
}

在控制器中:

代码语言:javascript
复制
[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");
}

除了重定向之外,所有的工作都很好!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-05 03:33:12

您需要在AJAX成功回调中执行重定向:

代码语言:javascript
复制
$.post(url, { MovieName: clip }, function(data) {
    window.location.href = '/home/show';
}, 'json');

重定向不能在服务器端执行,因为您正在使用AJAX调用此操作。

此外,您在AJAX调用中指出,您期望从服务器端获得JSON,但是您发送的是一个不一致的重定向。您可以修改控制器操作,以简单地返回客户端需要使用JSON重定向到的url:

代码语言:javascript
复制
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(SWF movietoplay)
{
    ...
    return Json(new { redirectTo = Url.Action("show") });
}

然后:

代码语言:javascript
复制
$.post(url, { MovieName: clip }, function(data) {
    window.location.href = data.redirectTo;
}, 'json');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3175942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档