为什么Action Link依赖于当前请求?

时间:2010-11-11 23:39:45

标签: asp.net-mvc actionlink

例如,当我访问http://www.nerddinner.com/Home/About/时,“关于”标签指向http://www.nerddinner.com/Home/About/,这正是我所期望的。

但是,如果我要访问http://www.nerddinner.com/Home/About/WhyDoesThisLinkChange,则此页面不仅有效,而且“关于”标签也指向http://www.nerddinner.com/Home/About/WhyDoesThisLinkChange。为什么ASP.NET MVC会这样做,我如何阻止它呢?

1 个答案:

答案 0 :(得分:1)

您可以显示路由设置吗?我建议,它有问题。第二个示例URL不应映射到同一操作。

您可能在路由中有一个参数 - 正确的MVC正在保留此参数。

原则上如果你有

/产品/视图/ 17

控制器=产品

动作=视图

{productId} = 17

因此,在这种情况下,保留产品的ID与对同一操作的请求保持一致是有意义的。

但在您的情况下,您并不希望这两个网址都映射到同一个位置。这就是说,一旦你在那里 - 使用第二个URL - MVC使用相同的URL返回相同的操作是有意义的。

更新:如果要显式停止接受此URL的参数,则需要使参数接受路由选项更具体,以便排除此URL,或者在其上方放置路由选项而不使用仅接受的参数主页/关于网址。