在asp.net-mvc控制器中,生成URL的最佳方法是什么

时间:2011-04-26 17:59:49

标签: c# asp.net-mvc controller urlhelper

现在我拿

 RequestContext 

并将其传递给UrlHelper,如下所示:

UrlHelper u = new UrlHelper(context);
string hrSyncUrl = u.Action("Update", "Person");

但问题是这似乎回归:

/Person/Update

而不是:

http://www.mysite.com/Person/Update

所以,给定一个控制器和动作名称,如何从控制器内部生成一个完整的URL?

我需要这个的原因是我正在生成一封电子邮件,所以我需要将完整的网址放入该电子邮件的正文中。

2 个答案:

答案 0 :(得分:3)

使用proper overload

string hrSyncUrl = u.Action("Update", "Person", null, "http");

为了避免对协议进行硬编码,您可以从请求中获取它:

var protocol = context.HttpContext.Request.Url.Scheme;
string hrSyncUrl = u.Action("Update", "Person", null, protocol);

答案 1 :(得分:0)