看起來似乎很簡單,但事實並非如此 - 主要是由於View不可能知道你通過Model和Controller的方式。無論如何,這是一個需要解決方案的問題:如何爲指向登錄表單的鏈接指定返回網址?
我有一個登錄鏈接,需要用戶輸入用戶名和密碼。當用戶點擊「提交」時,我想重定向到他正在查看的頁面。最簡單的方法似乎是將查詢字符串指定給當前頁面的URL(...?returnUrl=...
),其他所有內容都已經構建好。
但是在渲染鏈接時,我從哪裏可以找到這個URL?我自然不能使用RedirectToActionResult,因爲我不想實際傳輸用戶 - 只在鏈接中呈現URL。如何?
編輯:
我現在已經開始在這個問題上的賞金,因此,我認爲適當的澄清我的需求也是如此。
我在我的Shared文件夾中有一個名爲Login.ascx的UserControl。其中,我將一個ActionLink呈現給登錄表單,並將其包含在我的主頁面的頁腳中。我想要完成的是以下內容:
當ActionLink被渲染時,查詢字符串returnUrl
附加了到目前正在渲染的視圖的路徑。如果這樣做了,用戶將被帶回到他/她在成功登錄後查看的頁面中,該頁面已經構建到ASP.NET MVC框架中。
之前的答案還沒有足夠的原因主要是他們沒有提供一種方法來建立路徑url到當前視圖。我知道如何附加一個查詢字符串,但我不知道如何找出該字符串的內容。
爲了將答案標記爲的答案,我想要一個方法來重新構建到當前顯示的視圖的路徑,從masterpage中的usercontrol。
感謝您的回覆!我已經得到了這麼多 - 這是從我的路線構建returnUrl,我不知道該怎麼做。該鏈接位於我的母版頁上,因此對每個頁面上的鏈接進行硬編碼不是一種選擇。 – 2009-02-03 08:06:20
另外,ASP中的標準授權會將?returnURL添加到任何位於受保護區域中的請求(即具有帶允許/拒絕規則的web.config文件)。 – 2009-02-13 15:01:36