MVC4 - 有什么方法可以从视图中获取当前 - 而不是格式错误的路由?

时间:2014-05-28 11:06:50

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

我的意思是 - 如果用户键入类似:

Http://somepage.com/iNdex/sOmEaCtIoN

我想获得 / Index / SomeAction (或者在我的控制器中调用的任何内容)。由于上面的URL由MVC引擎正确路由,我想应该有办法做到这一点。

编辑:

我想在我的视图中看到这一点。

编辑2:

我设法通过传递控制器的类型解决了我的问题:

ViewContext.Controller.GetType()

Request.Url.AbsolutePath

到我的方法 - 然后在搜索方法匹配时使用toLower() - 仍然最好只是获取将由当前请求调用的控制器和方法的名称...

1 个答案:

答案 0 :(得分:1)

只是为了回答您的问题,您可以通过ViewContext直接访问视图中的路由值:

@ViewContext.RouteData.Values["controller"] @*controller name*@
@ViewContext.RouteData.Values["action"] @*action name*@

因此,在您的具体情况下,您可以这样做:

@string.Concat(ViewContext.RouteData.Values["controller"], "/", ViewContext.RouteData.Values["action"])

但是我个人仍然希望在控制器中获得那些必要的值,并通过viewmodel将它们传递给视图。