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
?
答案 0 :(得分: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";
}
我认为框架不使用名为“scheme”的DataToken,因此很难回答你的问题。您可能希望搜索DataTokens["scheme"]
的自定义应用程序代码,并查看其所在位置和原因。
修改强>
我找到了an article on "Adding HTTPS/SSL support to ASP.NET MVC routing"。有一个使用“scheme”数据令牌的例子。所以我很确定你的应用程序以同样的方式使用它。