我正在使用Ext.Net TreeGrid在MVC項目上工作。我有一個頁面「PieChart2」上的treegrid。當我第一次加載PieChart2時,我加載了具有根節點的樹。當我點擊其中一個節點時,我想在相同的URL中傳遞節點ID(/Home/PieChart2/nodeid)。我嘗試通過在treegrid的click事件中使用以下代碼重定向到一個URL來實現此目的。Response.RedirectToRoutePermanant不改變客戶端的URL
idVal是treenode被點擊的節點ID。
string newUrl = "/Home/PieChart2/" + idVal ;
Response.RedirectToRoutePermanent("PieRoute", new { id = idVal });
PieRoute在Global.asax中看起來像這樣。
routes.MapRoute("PieRoute", "{controller}/{action}/{id}", new { controller = "Home", action = "PieChart2", id = UrlParameter.Optional });
我看到兩個請求到服務器重定向1)301狀態碼與原始URL和2)新的URL。 Url也被正確處理,但瀏覽器仍顯示「/ Home/PieChart2」而不是「Home/PieChart2/nodeid」。
我正確的做法嗎?如果是的話,可能是它不起作用的原因是什麼?
一個愚蠢的問題 - 最初的HTTP請求是通過AJAX還是通過標準的同步HTTP post?如果通過AJAX請求,您是否在處理AJAX代碼中的HTTP 301重定向? – 2011-04-25 04:16:25
單,它是一個同步HTTP請求。謝謝 – 2011-04-25 17:52:59
我看到 - 在客戶端,您如何處理Ajax代碼中的重定向請求?如果你沒有安置它,你可能不得不這樣做。以http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call爲例。 – 2011-04-25 19:23:41