1

由 ASP.NET MVC 2 生成的默认脚手架视图包含以下链接:

<%: Html.ActionLink("Back to List", "Index") %>
<%: Html.ActionLink("Create New", "Create") %>

如果我从同一个根目录访问此页面,这些链接是完美的。但是例如,如果我有 Orders 和 Persons 并且我导航到/Orders/Edit/17via /Persons/Orders/3,那么“返回列表”会将我返回到我想去的 Orders 根目录而不是 Persons 根目录,因为“编辑订单”视图只知道订单。这使导航变得尴尬并打破了流程..

无论我来自哪里,我都想重复使用相同的“编辑订单”视图,但我不确定如何传递这些信息。

我知道可以传递类似的参数,/Orders/Edit/17?myparam=myvalue但是如果我需要传递指示网格的排序/过滤顺序的参数,这会限制我以后的选择吗?

将返回/原点位置传递给我的视图以便它可以正确呈现链接的首选方法是什么?否则,如何以不同于控制器的方式调用视图?

编辑:

有关干净的解决方案,请参阅这篇文章

4

2 回答 2

1

只要您不使用相同的名称,通过查询字符串传递参数就不会真正限制您。查询字符串有大小限制,但您可能不会遇到它。

这基本上就是我的做法。我很想看看其他人的回答。

于 2010-09-23T22:49:59.693 回答
0

这个功能似乎应该在框架中考虑;必须指定这些参数似乎相当麻烦,因为您必须为每个级别的导航都这样做。

为什么?back 与历史记录一起属于浏览器。已经有一段时间了,为什么框架需要处理呢?

你需要的不是常态。

此外,您有责任保持代码干燥。您绝对可以以一种方式处理它,即您所拥有的所有重复都是您正在调用的函数的名称。

于 2010-09-24T00:06:07.090 回答