为什么datatoken在路由中

本文关键字:路由 datatoken 为什么 | 更新日期: 2023-09-27 18:12:02

 context.MapRoute("authorized-credit-card", "owners/{ownerKey}/authorizedcreditcard/{action}",
 new { controller = "authorizedcreditcard", action = "index" },
 new { ownerKey = nameFormat }, dataTokens: new { scheme = Uri.UriSchemeHttps });

在我的路由文件中我有上述类型的路由。

那么,谁能告诉我dataTokens: new { scheme = Uri.UriSchemeHttps是什么意思呢?

以及上述dataTokens在控制器动作方法中的使用?

为什么datatoken在路由中

根据文档:

您使用datatoken属性来检索或分配与路由相关的值,这些值不用于确定路由是否与URL模式匹配。这些值被传递给路由处理程序,在那里它们可以用于处理请求。

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

internal class RouteDataTokenKeys
{
    public const string UseNamespaceFallback = "UseNamespaceFallback";
    public const string Namespaces = "Namespaces";
    public const string Area = "area";
}

我不认为框架使用名为"scheme"的数据令牌,所以很难回答你的问题。您可能想要搜索您的自定义应用程序代码DataTokens["scheme"],看看在哪里以及为什么需要它。

编辑:

我找到了一篇关于"在ASP中添加HTTPS/SSL支持"的文章。. NET MVC路由"。这里有一个使用"方案"数据令牌的示例。我很确定你的应用程序也是这样使用它的。