ASP.NET MVC中用于发送电子邮件的URL

时间:2009-02-12 02:16:21

标签: asp.net asp.net-mvc url-routing

如何为MVC应用程序生成适当的URL以包含在电子邮件中?

这是我的注册系统,它与我的控制器/操作分开。基本上,我想发送电子邮件验证以在控制器上触发操作。我不想对URL进行硬编码,我希望看到类似于视图的Url属性。

4 个答案:

答案 0 :(得分:2)

在您的控制器中,UrlHelper名为“Url” - 所以:

void Index() {
    string s = this.Url.Action("Index", "Controller");
}

“this”是不必要的,但它告诉你这个Url变量来自哪里

答案 1 :(得分:1)

我用过:

Html.BuildUrlFromExpression<AccountController>(c=>c.Confirm(Model.confirmedGUID.Value))

它是HTMLHelper的一部分(我想在MVC Futures中),所以你可能不得不将HTMLHelper的一个实例传递给你的服务层,不确定。我直接在我的视图中使用它来呈现电子邮件。这为您提供了绝对URL,然后我将域(http://www.mysite.com)存储在配置文件中,并将其附加到URL之前。

答案 2 :(得分:0)

如果我正确地阅读了这个问题,你需要在MVC代码之外进行控制器/操作。如果是这样,您将需要在Application Configuration或某个地方配置URL,除非您有权访问控制器类并使用反射来获取名称。

答案 3 :(得分:0)

您应该将URL作为应用程序配置的一部分。

我知道你可以用例如Web应用程序上的Server属性,但应用程序永远不会知道其IP或域名是否可以从外部访问,因为它可能隐藏在代理或负载均衡器后面。