2017-04-25 100 views
0

我将我的anguler模型发布到mvc HttpPost ActionResult。在我想要重定向动作联系人视图后。代码正在运行但联系人视图不显示。重定向ActionResult来自httpPost ActionResult视图不显示

首先ActionResult的呼叫

$scope.saveSubs = function() { 
    var sub = {Des: $scope.des.slice($scope.des.lastIndexOf("(") + 1, 
        $scope.des.lastIndexOf(")")), 
}; 

$http.post('/Home/HotelSearch', sub); 

这是工作。但在这个调用之后,我想重定向到另一个ActionResult。

HttpPost的ActionResult

[HttpPost] 
public ActionResult HotelSearch(HotelBooking hotelBooking) 
{ 
    ViewBag.Message = "Your contact page."; 
    TempData["LoginData"] = hotelBooking; 
    return RedirectToAction("Contact"); 
} 

二的ActionResult

public ActionResult Contact() 
{ 
    ViewBag.Message = "Your contact page."; 
    return View("Contact"); 
} 

此图中未观看。我可以知道这是什么问题吗?

+0

我不认为你可以在Ajax调用中重定向整个浏览器page_。通常,我会在Ajax调用返回时返回一个局部视图并将其添加到DOM;或者在Ajax调用返回时,我通过'location.href'返回一个带有URL的字符串以重定向客户端。 –

+0

ajax call working.second RedirectToAction未查看。调试点正在到达。但视图不工作。 – sanjeewa

+0

返回jsonresult到你的ajax调用并成功回调你可以重定向你想要的页面 –

回答

1

我同意上面的评论,你不能完全重定向使用ajax calls.ajax总是用于部分数据/视图加载。 我们可以使用Json返回类型从ajax调用重定向。

return Json(new {result = "Redirect", url = Url.Action("ActionName", "ControllerName")}); 

这可能对你有帮助。