我在Visual Studio 2015中使用ASP.NET MVC。該應用程序具有以下結構:ASP.NET MVC路由從部分視圖返回用戶到原點
MyApp的
控制器
- 控制器1
- 操作
- 鉻eate
- 刪除
- 詳細
- 編輯
- IndexPartial
- 操作
- 控制器2
- 操作
- 編輯
- 操作
- Controller3
- 操作
- 編輯
- 操作
- 控制器1
查看
- 控制器1
- 創建
- 刪除
- 詳細
- 編輯
- IndexPartial
- 控制器2
- 編輯
- Controller3
- 編輯
- 控制器1
該應用程序顯示Controller1/IndexPartial
視圖上Controller2/Edit
視圖和。該局部視圖顯示數據行,每個數據行都帶有Edit
,Details
,Delete
按鈕,這些按鈕可讓用戶訪問Controller1
視圖來執行這些操作。
當用戶與控制器1的動作完成後,他們需要通過Back to List
按鈕或當保存/刪除按鈕被點擊返回Controller2/Edit
或。但是,我們如何確定用戶來自哪裏?用戶是否來自Controller2
的Edit
或Controller3
?
我們想過使用會話變量。可以使用RouteConfig.cs
來跟蹤用戶的路徑並幫助確定他/她應該返回的位置嗎?我們如何通過MVC中的路由來做到這一點?
謝謝你的幫助。
更新:這一切都通過服務器完成;沒有JavaScript(Angular等)。
不要爲此類事情使用會話變量。如果會話超時(無論出於何種原因且有很多),表單將會中斷。相反,只需在URI中傳遞一個指示返回頁面的參數即可。 –
@ JennyO'Reilly,謝謝。該參數是否需要更改路線?你是否介意在一個例子中回答這個問題? – Alex
我不會把它放在路線上,因爲它會使這些不必要的複雜。您可以簡單地將一個值(POST或GET)傳遞給被調用的端點(無論路由),並使用Request對象在Action方法中檢查它。也許可以把這個檢查包裝在一個輔助對象/方法中,這樣你就不必每次硬編碼值的名字。 –