首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Routedata.Values[""]?

什么是Routedata.Values[""]?
EN

Stack Overflow用户
提问于 2015-03-03 10:30:14
回答 2查看 32K关注 0票数 19

令我惊讶的是,没有一篇文章对这个问题有任何详细的回答。我有几个关于RouteData.Values[""]的问题。

我看到了下面的代码:

代码语言:javascript
复制
public ActionResult Index()
{
    ViewBag.Message = string.Format("{0}---{1}--{2}",
        RouteData.Values["Controller"],
        RouteData.Values["action"],
        RouteData.Values["id"]);

    return View();
}

在这里,它基本上是在读取值,这些值听起来可能像控制器的“元数据”。或者是View也可以传递给Controller的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-03 11:40:39

RouteData.Values用于访问由处理路由的类插入的值/查询字符串值。

在您的示例中,您的路由配置类中定义的路由具有额外的参数,这些参数将被提供给这些参数。

参数是controller,action,id。

这些参数的参数应该已经在代码中的某处提供了。

当你从更高的级别开始时,它会更有意义,这样你就知道你在搜索什么。

  1. The Global.asax.cs

protected void发送器(object Application_Start,EventArgs e) { routingActions.RegisterCustomRoutes(RouteTable.Routes);}

  • 另一个类定义了上面的方法:

RegisterCustomRoutes(RouteCollection routes) {routes.MapPageRoute(“RouteCollection creates”,routes.MapPageRoute“~/RegisterCustomRoutes/SearchDetails.aspx”);}

  • 下面的代码创建一个超链接。主要区别在于HREF的构造方式。在本例中,"searchdetails“是在包含我的路由配置的类中定义的。

linkToDetails.HRef =GetRouteUrl(“RouteData.Values""”,{ orderID = someOrderID,PageIndex = currentPageIndex,PageSize = PageSize });

  • 最后,目标页面需要使用在步骤3中传递的信息。这就是我们使用搜索的地方

Convert.ToInt32(Page.RouteData.Values"PageIndex");Convert.ToInt32(Page.RouteData.Values"PageSize");Page_Load(object sender,EventArgs e) { var _orderid = Page.RouteData.Values"orderID".ToString();var _PageIndex =Page.RouteData.Values var _PageSize =}

票数 19
EN

Stack Overflow用户

发布于 2018-09-06 14:45:02

RouteData是基本控制器类的属性,因此您可以在任何控制器中访问RouteData。RouteData包含当前请求的路由信息。您可以使用RouteData获取控制器、操作或参数信息,如下所示。

请注意,您需要转换为适当的数据类型或使用隐式类型变量var。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28823084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档