我需要创建一个电子邮件,用户应该从中单击它以进入ASP.NET MVC页面。 控制器名称为Truck,操作为“编辑”。
我不知道如何将其放入超链接,以便用户可以转到页面。 部分问题在于,在开发过程中,它表示localhost ......它如何足够聪明才能获得路径。
答案 0 :(得分:7)
除了操作和控制器名称之外,您还需要此主机名,如您所说。您可以从ASP.NET MVC控制器中的Request
对象获取主机名。
这是我最近在控制器中执行此操作以获取页面的URL,然后将其包含在电子邮件中。在localhost和托管上都适用于我。
string url = Url.Action("action", "controller",
new System.Web.Routing.RouteValueDictionary(new { id = id }),
"http", Request.Url.Host);
Url
是一个UrlHelper
,可以在ASP.NET MVC控制器中访问。
查看我使用的特定UrlHelper.Action()
方法的MSDN documentation。似乎这是hostname参数的唯一重载。