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

В моем файле маршрута у меня есть вид маршрута.Зачем нужны данныеTokens?

Итак, может ли кто-нибудь сказать мне, что значит dataTokens: new { scheme = Uri.UriSchemeHttps?

И использование выше dataTokens внутри метода действия контроллера?

+0

Я не думаю, что 'dataTokens' является параметром' MapRoute' в MVC 3. –

+0

@vonv. Сожалею. На самом деле это должен быть MVC 2.I его исправить. Plz проверить это. – Sampath

ответ

7

По the documentation:

Вы можете использовать свойство 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"] и посмотреть, где и зачем он нужен.

EDIT:

Я нашел an article on "Adding HTTPS/SSL support to ASP.NET MVC routing". Существует пример использования токена данных схемы. Поэтому я уверен, что ваше приложение использует его таким же образом.