簡體   English   中英

ASP.NET MVC中的AJAX POST方法中未發生重定向

[英]redirection not happening in AJAX POST method in ASP.NET MVC

我在ASP.NET MVC中有以下視圖頁

 @model ProjectName.Model.Sample
 @{

 }
 <div class="row">
  <div class="col-xs-12">
   <form class="form-horizontal" role="form">
      <div class="form-group">
        ..        
      </div>
      <div class="form-group">
        ..
      </div>
   </form>
  </div>
     <div class="col-sm-offset-1 col-sm-11">
     <button type="button" class="ss" id="savebutton">Save</button>
     <button type="button" class="ssd">Clear</button>
     </div>
     </div> 

     <script type="text/javascript">

     $("#savebutton").click(function () {
               $.ajax({
                    type: "POST",
                    dataType: "html",
                    url: '@Url.Action("AssignUsers", "Sample")',
                    data: { ... },               

                    success: function ()
                    {

                    },
                    error: {}
                });
            });
        }
    </script>

然后我有以下post方法來捕獲Ajax POST方法

    [HttpPost]
    public ActionResult AssignUsers(...) 
    {
        try
        {
                if (sucess)
                {
                   // I have an Area call Account therefor try to direct like below
                  return RedirectToAction("Index", "Sample", new { area = "Account" });
                }
                else
                {
                    ModelState.AddModelError("", "Please try again.");
                }

                return View();

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

然后我換了

return RedirectToAction("Index", "Sample", new { area = "Account" });

return Redirect("~/Account/Sample/Index");

但這一次也行不通。

成功之后,這並沒有直接到達期望的位置,我的方法出了什么問題。

您可以做的是將重定向操作添加到Javascript代碼中,並通過控制器上的Json捕獲它:

$("#savebutton").click(function () {
           $.ajax({
                type: "POST",
                dataType: "html",
                url: '@Url.Action("AssignUsers", "Sample")',
                data: { ... },               

                success: function (result)
                {
                    if (result.isSuccess==false)
                    {
                      //Add your redirect code here:
                       window.location.href = '@Url.Action("Index", "Sample")';
                    }
                },
                error: {}
            });
        });
    }

在您的控制器上,您將使用Json捕獲它:

if (sucess)
      {         
        return Json(new {isSuccess = false, message = "Your message here"});
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM