Генерация абсолютных URL из Html.RouteLink - PullRequest
4 голосов
/ 08 декабря 2010

Я использую @Html.RouteLink("Validate", "ValidateEmail", new { email = Model.Email, key = Model.Key }) для создания ссылки, которую я отправляю по электронной почте только что зарегистрированному пользователю.И когда я пробовал это, я обнаружил, что, wops, он не генерирует абсолютные URL ... Это означает, что я получил ссылку типа <a href="/Membership/Validate/email.to%40you.com?key=someKey">Validate</a>.Однако, когда я отправляю эту ссылку в электронном письме, она (по причине) не будет работать, так как мне сделать это лучше?Какие-нибудь простые решения?

1 Ответ

7 голосов
/ 08 декабря 2010

Вы можете использовать следующие перегрузка :

@Html.RouteLink(
    "click me", 
    "Default", 
    "http", 
    null, 
    null, 
    new { 
        email = Model.Email, 
        key = Model.Key, 
        controller = "Home", 
        action = "Index" 
    }, 
    null)

Default - это имя маршрута, как определено в Global.asax, http - протокол (может быть https, если вы хотите, или просто используйте Request.Url.Scheme, чтобы получить протокол с содержащейся страницей и избежать уродливых жестких кодировок) затем анонимный объект, содержащий значения маршрута, и это почти все -> вы получите абсолютный URL.

Кстати, у всех помощников, генерирующих URL, есть перегрузки, которые принимают протокол и имя хоста: используйте их для абсолютных URL.

...