为什么dataTokens是路由?(Why dataTokens are in Route?)

2019-09-01 18:19发布

 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控制器的操作方法里面?

Answer 1:

根据文档 :

您可以使用DataTokens属性检索或分配与不用于确定路由是否一个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";
}

我不认为框架使用名为“方案” DataToken所以很难回答你的问题。 您可能需要搜索您的自定义应用程序代码DataTokens["scheme"]看看,为什么它是必要的。

编辑:

我发现在“给ASP.NET MVC路由添加HTTPS / SSL支持”的文章 。 存在使用“方案”数据令牌的一例。 所以我敢肯定,你的应用程序使用它以非常相似的方式。



文章来源: Why dataTokens are in Route?