您好,
有没有一种简单的方法来生成特定操作的完整URL?我已经尝试过这个:
urlHelper.Action("Action", "Controller")
但这会生成一个反斜杠“\”。
最好的问候
编辑 1:我已经尝试过这个:
urlHelper.Action("List", "Ad", null, "http");
但是它只返回:localhost:16055。我期望的是像 localhost:16055/Ad/List 这样的东西?
您好,
有没有一种简单的方法来生成特定操作的完整URL?我已经尝试过这个:
urlHelper.Action("Action", "Controller")
但这会生成一个反斜杠“\”。
最好的问候
编辑 1:我已经尝试过这个:
urlHelper.Action("List", "Ad", null, "http");
使用 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
要从控制器生成,请使用此代码:
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
应该就是这样了。
Url.action 生成一个相对的 URL。要生成一个绝对的 URL,你可以参考这个链接:如何在 ASP.NET MVC 中找到操作的绝对 URL?