7
 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在控制器的动作方法中的用法?

4

1 回答 1

8

根据文档

您可以使用 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 支持”的文章。有一个使用“方案”数据令牌的示例。所以我很确定你的应用程序以同样的方式使用它。

于 2013-08-25T22:43:19.517 回答