我在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方法中检查它。也许可以把这个检查包装在一个辅助对象/方法中,这样你就不必每次硬编码值的名字。 –