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
在控制器的操作方法内?
根据文档 http://msdn.microsoft.com/en-us/library/system.web.routing.route.datatokens.aspx:
您可以使用 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"]
并了解哪里需要它以及为什么需要它。
EDIT:
我发现了关于“向 ASP.NET MVC 路由添加 HTTPS/SSL 支持”的文章 http://blog.stevensanderson.com/2008/08/05/adding-httpsssl-support-to-aspnet-mvc-routing/。有一个使用“方案”数据令牌的示例。所以我很确定您的应用程序以完全相同的方式使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)