asp.net-mvc-3 – 从View中访问RouteData.Values的最简单的方法

我正在使用以下代码获取我的视图中的当前“动作”,因为我想根据自定义构建一个actionlink。
ViewContext.RequestContext.RouteData.Values("action")

我的最终目标是使用Javascript构建一些动作链接,而.js需要知道当前的控制器和操作是什么,因为我希望它是灵活的。我通过浏览框架发现了以上内容,但我不知道我是否找到正确的东西。

var routeData = ViewContext.RequestContext.RouteData;
var linkStub = '/@routeData.Values("controller")/@routeData.Values("action")';

有人知道这是否是最简单/最简单的方法呢?

解决方法

最干净的方式将是一种扩展方法
public static class MyUrlHelper
{
    public static string CurrentAction(this UrlHelper urlHelper)
    {
        var routeValueDictionary = urlHelper.RequestContext.RouteData.Values;
        // in case using virtual dirctory 
        var rootUrl = urlHelper.Content("~/");
        return string.Format("{0}{1}/{2}/",rootUrl,routeValueDictionary["controller"],routeValueDictionary["action"]);
    }
}

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...