1

我正嘗試重定向到我的控制器的不同頁面。不過,我的頁面上有一個動態部分渲染設置,它將頁面的一部分渲染爲特定的div。MVC Ajax部分渲染重定向

$(document).ready(function() { 
    $.ajax({ 
     url: '<%=Url.Content("~/Area/Controller/Action")%>'; 
     success: function (data) { 
     $("#div1").html(data); 
     }, 
     error: function (data) { 
     $("#div1").html(data.responseText); 
     } 
    }); 
}); 

我得到的問題是,當我嘗試從控制器到重定向的頁面,我重定向到被股利,而不是隻是完全重定向內呈現。

控制器:

public ActionResult Index() 
{ 
    if (condition...) 
     return RedirectToAction("Index", "Controller", new { Area = "Area" }); 

    return PartialView("view", model); 
} 

我需要能夠完全重定向到另一個頁面。

回答

1

您當前正在要求jQuery使用來自控制器的HTML響應填充$('#div1')。這不是你想要的。爲什麼你的控制器不會發送的URL而不是頁面HTML?

$.ajax({ 
    url: '<%=Url.Content("~/Area/Controller/Action")%>'; 
    success: function (data) { 
     window.location.href = data.url; 
    }, 
    error: function (data) { 
     $("#div1").html(data.responseText); 
    } 
}); 

您還包括一個額外的右括號,我已刪除。

+0

這沒有解決我的問題...我需要jQuery來填充我的div,但是在控制器中的一個條件後,我希望它INSTEAD重定向到另一個控制器/動作...我已經更新了該問題以提供更多信息控制器。 – Aaron 2012-03-30 05:55:07

0

只是試圖破解你的邏輯,使其工作。

public ActionResult Index() 
{ 
    if (condition...) 
     return new {Status = 1, Content = <your URL to Redirect to>}; 

    return new {Status = 2, Content = PartialView("view", model)}; 
} 



$(document).ready(function() { 
    $.ajax({ 
     url: '<%=Url.Content("~/Area/Controller/Action")%>'; 
     success: function (data) { 
     if(data.d.Status = 1) 
      { 
      window.location.href = data.d.Content; 
      } 
     else 
      { 
      $("#div1").html(data.d.Content); 
      }    
     }, 
     error: function (data) { 
     $("#div1").html(data.responseText); 
     } 
    }); 
}); 

注意:我沒有測試過這個。您可能需要使用它才能使其工作。此外,您可能需要將索引的返回類型更改爲「對象」。

請讓我知道結果。