我正在使用@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>
这样的链接。但是,当我在电子邮件中发送此链接时(原因)将无法正常工作,那么我该如何改进呢?任何简单的解决方案?
答案 0 :(得分:7)
您可以使用以下overload:
@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
来获取包含页面协议并避免丑陋的硬编码),然后是一个包含路由值的匿名对象,几乎所有 - &gt;你会得到一个绝对的网址。
顺便说一下,所有生成助手的url都有重载,这些重载采用协议和主机名:将它们用于绝对URL。