生成操作的“服务器”地址,然后附加查询字符串:
return string.Format(Url.Action("RegisterConfirmation", "Account")+"?Id={0}", confirmationToken);
或者:
return string.Format(Url.Action("RegisterConfirmation", "Account", new {Id = confirmationToken });
如果你需要一个完整的绝对网址,你可以使用第三个版本:
return string.Format(Url.Action("RegisterConfirmation", "Account", new {Id = confirmationToken }, Request.Url.Scheme);
如果您需要在其中一个控制器之外生成完整的 url,请使用HttpContext.Current.Request.Url.Scheme
而不是Request.Url.Scheme
. 为了利用Url.Action
,如果您CreateUserConfirmationLink
从您的控制器之一调用您的方法(我假设您这样做),您可以修改该方法以将 UrlHelper 作为输入参数:
private string CreateUserConfirmationLink(string confirmationToken, UrlHelper urlHelper)
{
return string.Format(urlHelper.Action("RegisterConfirmation", "Account", new {Id = confirmationToken }, HttpContext.Current.Request.Url.Scheme);
}
编辑:对于 .Net 4 及更高版本,可以从当前上下文中实例化 UrlHelper:
private string CreateUserConfirmationLink(string confirmationToken)
{
UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
return string.Format(urlHelper.Action("RegisterConfirmation", "Account", new {Id = confirmationToken }, HttpContext.Current.Request.Url.Scheme);
}