C# 为什么数据令牌在路由中?

C# 为什么数据令牌在路由中?,c#,asp.net-mvc-2,routes,C#,Asp.net Mvc 2,Routes,在我的路线文件中,我有上述路线 那么,有谁能告诉我dataTokens:new{scheme=Uri.UriSchemeHttps的意思吗 以及在控制器的操作方法中使用上述数据令牌,依据: 您可以使用DataTokens属性检索或分配与路由关联的值,这些值不用于确定路由是否与URL模式匹配。这些值将传递给路由处理程序,可在其中用于处理请求 因此,DataTokens是一种可以通过路由传递的附加数据。有3个DataToken的密钥是预定义的(下面的类来自ASP.NET MVC 4的源代码,但在版本

在我的路线文件中,我有上述路线

那么,有谁能告诉我
dataTokens:new{scheme=Uri.UriSchemeHttps
的意思吗

以及在控制器的操作方法中使用上述数据令牌,

依据:

您可以使用DataTokens属性检索或分配与路由关联的值,这些值不用于确定路由是否与URL模式匹配。这些值将传递给路由处理程序,可在其中用于处理请求

因此,DataTokens是一种可以通过路由传递的附加数据。有3个DataToken的密钥是预定义的(下面的类来自ASP.NET MVC 4的源代码,但在版本2中使用相同的密钥):

我不认为框架使用名为“scheme”的DataToken,因此很难回答您的问题。您可能希望搜索自定义应用程序代码以查找
DataTokens[“scheme”]
,并查看需要它的位置和原因

编辑:


我发现了。有一个使用“scheme”数据令牌的例子。所以我很确定您的应用程序使用它的方式非常相同。

我不认为
dataTokens
是MVC 3中
MapRoute
的一个参数。@vonv.对不起。实际上它应该是MVC 2。我已经更正了。请检查一下。
 context.MapRoute("authorized-credit-card", "owners/{ownerKey}/authorizedcreditcard/{action}",
 new { controller = "authorizedcreditcard", action = "index" },
 new { ownerKey = nameFormat }, dataTokens: new { scheme = Uri.UriSchemeHttps });
internal class RouteDataTokenKeys
{
    public const string UseNamespaceFallback = "UseNamespaceFallback";
    public const string Namespaces = "Namespaces";
    public const string Area = "area";
}