从Html.RouteLink生成绝对URL

Alx*_*ndr 4 asp.net-mvc routes html-helper asp.net-mvc-3

@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>.但是,当我在电子邮件中发送此链接时,它(原因)将无法正常工作,那么我该如何改进呢?有什么简单的解决

Dar*_*rov 7

您可以使用以下重载:

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

Default是在规定的路线名称Global.asax,http是协议(可能是https,如果你愿意的话,或者简单地使用Request.Url.Scheme,以获得含有页面协议,避免丑陋hardcodings),然后将包含路由值,这就是几乎所有的匿名对象- >你会得到一个绝对的网址.

顺便说一句,所有生成助手的url都有重载,这些重载采用协议和主机名:将它们用于绝对URL.