我想在 Razor View 中生成绝对网址
它可能看起来像这样:
@Html.ActionLink("Register Now", "action", "controller",
new { area = "Area", id = @Model.Id }, null)
我已经看到了很多这方面的尝试,但还没有找到能为我提供所需的完整链接的东西。
最佳答案
我不相信有办法使用 Html.ActionLink
生成具有绝对 URL 的链接。例如,使用问题中的 Html.ActionLink
将生成以下 HTML 输出:
@Html.ActionLink("Register Now", "Action", "Controller", new { @area = "Area", @id = Model.Id}, null)
// output: <a href="/Area/Controller/Action/{Model.Id}">Register Now</a>
要生成绝对 URL,我建议实现自定义扩展方法。
public static string AbsoluteActionUrl(this UrlHelper url, string actionName, string controllerName, object routeValues)
{
string scheme = url.RequestContext.HttpContext.Request.Url.Scheme;
return url.Action(actionName, controllerName, routeValues, scheme);
}
当然,您必须自己编写 HTML 标记并使用扩展来生成 href
属性的 URL,如下所示:
<a href="@Url.AbsoluteActionUrl("Action", "Controller", new { @Area = "Area", @id = Model.Id})">Register Now</a>
您不必创建自定义扩展方法,但在使用 Url.Action
时需要使用魔术字符串来指定方案。
上面使用的 Url.Action
重载的 MSDN 文档可用 here 。还有other overloads available .
关于asp.net-mvc - 在razor View 中生成绝对url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26940751/