我想在我的控制器上使用Request.UrlReferrer.PathAndQuery
方法作爲return Redirect(Request.UrlReferrer.PathAndQuery);
,但它總是獲取當前頁面的URL,我猜我的登錄頁面在控制器中名爲AccountController,所以這個方法沒有出來的控制器。因爲當我嘗試在_Layout
上使用@Request.UrlReferrer.PathAndQuery
時,它運行良好。你知道解決方案嗎?Request.UrlReferrer不能在控制器上工作頁面
0
A
回答
0
據我瞭解,你從你要什麼Action2
,在其上進行了一些工作,但與HttpPostAttribute
發佈到Action2
Action1
,想回去Action1
。一切工作都是同步的,沒有AJAX。
您不應該使用Request.UrlReferrer
,因爲它不提供所需的值。它包含頁面地址,從Action2
到HttpPost
,顯然是Action2
和[HttpGet]
或沒有屬性(類似於[HttpGet]
)。如果
首先方式用戶應該永久重定向到所需的頁,是使用控制器的RedirectToAction
方法:
return RedirectToAction("Action1", "YourControllerName");
另一種方式是存儲鏈接直接在客戶端上的隱藏的輸入重定向。它要求修改控制器的代碼:
public ActionResult Action2(string backUrl)
{
if (string.IsNullOrEmpty(backUrl))
{
throw new ArgumentNullException("backUrl");
}
ViewBag.ReturnUrl = backUrl;
//your work
return View();
}
[HttpPost]
public ActionResult Action2(YourModel model, string backUrl)
{
//your work
return Redirect(backUrl);
}
而在客戶端:
措施1視圖:
...
@Html.ActionLink("text", "Action2", new { backUrl = Url.Action("Action1") })
...
措施2的視圖(a形式內側):
...
<input name='backUrl' type='hidden' value='@ViewBag.ReturnUrl' />
...
而一切都應該工作。
+0
雖然這在技術上是正確的,但您應該將返回值封裝在檢查'Url.IsLocalUrl(backUrl)'的條件中。這樣可以防止惡意第三方在您的網站上發佈類似登錄表單的內容並通過返回URL將安全漏洞重定向到其惡意網站。允許他們對用戶執行釣魚攻擊。 –
相關問題
- 1. JavaScript片段在控制檯上工作,但不在頁面上
- 2. Jquery在控制檯上工作,但不在頁面上
- 3. Codeigniter默認控制器在主索引頁上工作,但不在主控制器內的頁面
- 4. jQuery不能在頁面上工作
- 5. .php頁面不能在xampp上工作
- 6. Jquery在控制檯工作,但不在頁面上替換
- 7. JavaScript在控制檯中工作,但不在我的頁面上
- 8. eventlisters不能在控制器中工作
- 9. ActiveX控件不能在ASPX頁面上工作
- 10. Apache和MySQL不能在xampp控制面板上工作
- 11. HTML頁面正在工作,但aspx頁面不能在IIS上工作
- 12. 單頁控制器不工作
- 13. jquery不能在內容頁面的服務器控件上工作
- 14. Ace編輯器不能在其他頁面上工作 - AngularJS App
- 15. Laravel控制器不能正常工作
- 16. 角JS控制器功能不工作
- 17. 控制器rspec不能正常工作
- 18. extjs setLoading()不能從控制器工作
- 19. Laravel控制器不能在另一臺電腦上工作
- 20. 導航控制器不能在所有視圖上工作
- 21. 控制器不能在LARAVEL上工作5
- 22. Mutilple控制器在一個頁面上
- 23. CakePHP的$這個 - >頁面中設置控制器()不工作
- 24. AngularJS控制器的工作原理,但不加載HTML頁面
- 25. cakephp控制器不工作;查看頁面未找到
- 26. Silverstripe:頁面控制器重定向返回不工作
- 27. 設計用戶顯示頁面控制器不工作
- 28. chartjs不工作的PHP頁面,但在HTML頁面上工作
- 29. 控制檯不能工作
- 30. 主頁面不能在單個頁面上工作,但只能在IE中
你是否試圖用'HttpPostAttribute'在方法內調用它? –
請包含您的源代碼。還請詳細說明它返回的價值,以及您期望**返回的價值。 – mjwills
@MikhailNeofitov Yeap,我試圖在[HttpPost]中調用它 –