无法使用RedirectToAction进行导航

时间:2011-09-27 09:28:41

标签: visual-studio asp.net-mvc-3 jquery-ui

我无法使用Redirect导航到另一个页面,即当结果为false时,我想导航到未发生的异常页面。

 public ActionResult IsLoginExsit(CustomerDO loginData)
    {          


        if (!string.IsNullOrEmpty(loginData.UserName) && !string.IsNullOrEmpty(loginData.Password))
        {
            bool result = Businesss.Factory.BusinessFactory.GetRegistrations().IsLoginExist(loginData.UserName, loginData.Password);
            if (result)
            {
                CustomerDO custInfo = new CustomerDO();
                JsonResult jsonResult = new JsonResult();
                jsonResult.Data = loginData;
                custInfo = Businesss.Factory.BusinessFactory.GetRegistrations().GetCustInfoByUserName(loginData.UserName);
                SessionWrapper.SetInSession("CustomerID", custInfo.Id);
                SessionWrapper.SetInSession("CustomerFirstName", custInfo.FirstName);
                SessionWrapper.SetInSession("CustomerLastName", custInfo.LastName);
                return jsonResult;
            }
            else
            {
                return RedirectToAction("UnAuthorized", "Exceptions");
            }
        }
        return View();

    }

1 个答案:

答案 0 :(得分:0)

您似乎正在使用AJAX调用此操作。如果要重定向,则应使用window.location.href在此AJAX调用的成功回调中在客户端完成此操作。因此,例如,您可以调整您的操作,以便在出现错误时返回包含要重定向到的URL的JSON对象:

else
{
    return Json(new { errorUrl = Url.Action("UnAuthorized", "Exceptions") }); 
}

然后在你的AJAX成功回调中:

success: function(result) {
    if (result.errorUrl) {
        window.location.href = result.errorUrl;
    } else {
        ...
    }
}