成功将ajax post请求发送到页面重定向

时间:2017-07-21 13:56:30

标签: c# ajax asp.net-mvc post asp.net-mvc-5

我正在学习ASP.net MVC - 5而且我遇到了一个问题。所以我需要在成功的Ajax Post Request之后打开一个URL。但我也希望将一个值传递给新URL的Controller Action。以下就是我现在所拥有的。

AJAX CALL

 $.ajax({
        url: URL,
        type: 'POST',
        data: data,

        success: function (result) {
            if (result == true) {
            int TEMPVAR = 2;
            DisplayError('Save Successful', 'Success', function () { 
            window.location.href = '/Settings/Customize/'; });
            },
            error: function (error) {
        }
    });

控制器操作

  [AuthorizeSettings]
  public ActionResult Customize()
  {
     //I want to be able to access TEMPVAR value here
     // code removed for brevity
     return View(configData);
  }

问题:如何将TEMPVAR data传递给Customize Action

点数:

我知道有一些传递数据的方法。 TempData,Viewbag,SessionVariable,在URL请求中嵌入TEMP值,匿名对象,ViewData,类的静态变量,全局变量,JSON。但我完全混淆了如何传递数据。我是新手,请在这里指导我。

修改

AJAX CALL

 $.ajax({
        url: URL,
        type: 'POST',
        data: data,

        success: function (result) {
            if (result == true) {
            int TEMPVAR = 2;
            DisplayError('Save Successful', 'Success', function () { 
            window.location.href = '/Settings/Customize/'; });
             TEMPDATA["value"] = TEMPVAR;
            },
            error: function (error) {
        }
    });

1 个答案:

答案 0 :(得分:1)

根据评论,您希望将数据从SaveStyles发送到Customize。如果是,您可以使用TempData -

public class PersistController : Controller
{
    [HttpPost]
    public ActionResult SaveStyles()
    {
        TempData["Status"] = true;
        TempData["Val"] = 4;
        return Json(true);
    }
}

public class SettingsController : Controller
{
    public ActionResult Customize()
    {
        bool status = Convert.ToBoolean(TempData["Status"]);
        int val = Convert.ToInt32(TempData["Val"]);
        return View();
    }
}