在MVC中生成完整的URL?

时间:2012-04-24 15:13:50

标签: c# asp.net-mvc

  

可能重复:
  How to I find the absolute url of an action in ASP.NET MVC?
  Asp MVC Action link absolute url

您好,

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

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

但这会产生一个“\”。

BestRegards

编辑1:我试过这个:

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

但它只返回:localhost:16055。我期待像localhost这样的东西:16055 / Ad / List?

2 个答案:

答案 0 :(得分:17)

使用Html.ActionLink(“链接标题”,“操作”,“控制器”)

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

@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

要从Controller生成,请使用以下代码:

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);

从View中调用它:

@ViewBag.MyUrl

应该是它。

答案 1 :(得分:0)

Url.action生成网址亲戚。要生成绝对网址,您可以查看以下内容:How do I find the absolute url of an action in ASP.NET MVC?