ASP.NET MVC 2点返回链接到适当的视图

时间:2010-09-23 22:43:06

标签: model-view-controller asp.net-mvc-2 asp.net-mvc-routing asp.net-routing

ASP.NET MVC 2生成的默认scaffolded视图包含以下链接:

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

如果我从同一个根来到这个页面,这些链接是完美的。但是,例如,如果我有订单和人员,并且我通过/Orders/Edit/17导航到/Persons/Orders/3,那么'返回列表'会将我返回到订单根而不是人根,我想去的地方,因为' “编辑订单”视图仅了解订单。这使导航变得笨拙并打破了流程..

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

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

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

编辑:

要获得干净的解决方案,请参阅THIS POST

2 个答案:

答案 0 :(得分:1)

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

这基本上就是我的表现。我很想知道其他人的回答。

答案 1 :(得分:0)

  

这个功能似乎应该在框架中考虑到了;必须指定这些参数似乎相当苛刻,因为您必须为每个导航级别执行此操作。

为什么呢? back是属于浏览器的东西,还有历史。它已经有一段时间了,为什么框架需要处理呢?

你需要的不是常态。

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