在 MVC 中生成完整的 URL

本文关键字:URL MVC | 更新日期: 2023-09-27 18:32:10

可能的重复项:
如何在 MVC 中找到操作 ASP.NET 绝对 url?
ASP MVC 操作链接绝对网址

你好

有没有一种简单的方法来为特定操作生成完整的 URL?我试过这个:

urlHelper.Action("Action", "Controller")

但这确实会生成一个"''"。

最诚挚的问候

编辑1:我试过这个:

urlHelper.Action("List", "Ad", null, "http"); 

但它只返回:本地主机:16055。我期待类似本地主机:16055/广告/列表的东西?

在 MVC 中生成完整的 URL

使用 Html.ActionLink("Link title", "Action", "Controller")

要生成完整链接,请使用:

@Html.ActionLink("Link Title", "Action", "Controller", "http", "www.mysampledomain.com", 
                 "_blank", new {id = paramValue}, new { @class="someClass" })

这是具有您可以指定的所有参数的扩展重载。请查看此 MSDN 文章 http://msdn.microsoft.com/en-us/library/dd492938.aspx

要从控制器生成,请使用以下代码:

var url = UrlHelper.GenerateUrl(null, "MyAction", "MyController", "http", "www.mydomain.com", String.Empty, null, RouteTable.Routes, this.ControllerContext.RequestContext, false);
URL

变量将包含 URL 的字符串表示形式。您可以将其存储在ViewBag中,例如:

ViewBag.MyUrl = UrlHelper.GenerateUrl(null, "MyAction", "MyController", "http", "www.mydomain.com", String.Empty, null, RouteTable.Routes,
                                        this.ControllerContext.RequestContext, false);

从视图调用它为:

@ViewBag.MyUrl

应该就是这样了。

Url.action 生成一个相对的 url。要生成绝对网址,您可以查看以下内容:如何在 MVC 中找到操作 ASP.NET 绝对网址?