比方說,我有一個控制器操作,用於從用戶的購物籃中刪除項目。此控制器操作是通過對url〜/ delete/{id}執行POST來觸發的。如果我的應用程序中有多個頁面將發佈到此網址,那麼我如何構建控制器操作以重定向回發佈到它的頁面?如何重定向到ASP.NET MVC中的調用頁面?
回答
我從來沒有嘗試過,但是您可以使用Referer標頭來知道帖子或來源的來源,並嘗試將網址與路線進行匹配。
您應該從發佈頁面提供RedirectToUrl參數。
依靠引用標頭並不是一個好習慣。
相反,做這樣的事情:
public ActionResult Delete(int id, string RedirectToUrl)
{
// check if RedirectToUrl is null or empty and redirect accordingly
}
有關消息視圖或局部視圖中,您可以通過多種方式提供參數:
<%= Html.Hidden("RedirecToUrl","/my/lovely/url") %>
或
<form action="/item/delete/22?RedirectToUrl=/my/lovely/url">
我我更喜歡第一個選項。
我會做的第一件事就是使用Ajax.ActionLink,然後如果用戶啓用了Javascript,則永遠不會離開頁面。這是最好的解決方案。如果你不想要鏈接,你也可以使用Ajax表單。其中任何一個都可以使用DELETE或POST方法。
爲了處理Javascript被關閉的情況,當您在控制器中檢測到POST沒有通過Ajax完成(Request.IsAjaxRequest爲false)時,您可以查看Request.UrlReferer屬性以獲取推介頁面的網址。如果不爲null,則可以使用RedirectResult返回此頁面。如果它爲空,請選擇默認的着陸頁 - 可能類似於「您的商品已被刪除,請點擊此處繼續購物」。後者可能只會很少受到打擊。
只需使用URL Referer [原文如此]頭。
var requestFrom = Request.UrlReferrer
您可以找到的文檔:http://msdn.microsoft.com/en-us/library/system.web.httprequest.urlreferrer.aspx
唯一的一次,這是行不通的網頁時直接要求,但在這種情況下,你不會有任何地方重定向到不管怎麼說。
也可以選擇使用AJAX做唯一的異步操作,以便您的Delete操作僅執行所描述的操作,並且不負責執行超出其預期刪除目的的操作。
如果您使用WCSF(Web客戶端軟件工廠)實現MVC模式,則可以使用PageFlow執行所有導航。例如:
例如: -
PageFlow.Next();或PageFlow。以前();
這就是我做的:
public ActionResult ResendActivationEmail()
{
// Do other things here
return new RedirectResult(Request.UrlReferrer.AbsoluteUri);
}
- 1. ASP.net重定向到調用頁面
- 2. ASP.NET MVC - 重定向到外部頁面?
- 3. ASP.Net MVC 3.0 Ajax.BeginForm重定向到頁面?
- 4. ASP.NET MVC AJAX重定向到新頁面
- 5. 重定向到部分頁面(ASP.NET MVC)
- 6. 如何重定向到asp.net mvc 3中的錯誤頁面?
- 7. 如何重定向到MS ASP.NET MVC中查看錯誤頁面?
- 8. ASP.NET MVC從錯誤頁面重定向到主頁頁面
- 9. 沒有MVC的ASP.NET頁面重定向
- 10. 註冊頁面重定向到登錄頁面asp.net mvc
- 11. 如何重定向在asp.net中的錯誤頁面mvc
- 12. 如何在返回ASP.NET MVC中的FileStreamResult後重定向頁面
- 13. 重定向到ASP.NET MVC中的始發頁面
- 14. 重定向到Asp.Net MVC中的移動頁面3
- 15. 如何在頁面重定向到asp.net MVC後堅持頁面狀態?
- 16. 如何從Web窗體Site.Master頁面重定向到MVC頁面?
- 17. 如何重定向到asp.net中的特定網站頁面?
- 18. ASP.NET MVC重定向到ajax內容調用上的登錄頁面
- 19. Asp.net MVC如何處理一個aspx頁面調用並重定向它?
- 20. 如何將頁面從視圖重定向到ASP.NET MVC 3中的控制器?
- 21. 如何防止Ajax重定向到Asp.net中的另一個頁面Mvc 5
- 22. 如何從asp.net中的JS顯示頁面重定向到特定頁面
- 23. 如果AbpAuthorize在asp.net mvc中失敗,如何重定向到登錄頁面?
- 24. 如何重定向到一個新的頁面Spring MVC中
- 25. Spring MVC。重定向頁面
- 26. Spring MVC - 重定向頁面
- 27. 將wordpress調用重定向到頁面
- 28. 重定向到正確的頁面在ASP.NET MVC
- 29. ASP.NET MVC 5 - 重定向到與文化相同的頁面
- 30. 如何重定向到特定的錯誤頁面在MVC FileDownloadResult
大多數統計系統依賴Referer標頭知道在哪裏請求來自。這是不可靠的,但如果我必須選擇更改網站中的每個鏈接,並依靠referer頭部重定向,我會選擇最後一個,或者按照tvanfosson的建議做一些ajax actionlink。 – 2009-01-30 12:41:31