加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Asp MVC Action链接绝对URL

发布时间:2020-12-15 06:47:44 所属栏目:百科 来源:网络整理
导读:我有一组显示给特定用户的视图.这些是我在我们的应用程序中从其他视图复制的视图,并略有改变. 在这些视图中,我使用Html.Action链接,但是我需要这些链接来返回一个绝对的网址,而不是相对的.我知道有额外的参数可以用来获得这个效果,但是我不能改变我所有观点
我有一组显示给特定用户的视图.这些是我在我们的应用程序中从其他视图复制的视图,并略有改变.

在这些视图中,我使用Html.Action链接,但是我需要这些链接来返回一个绝对的网址,而不是相对的.我知道有额外的参数可以用来获得这个效果,但是我不能改变我所有观点中的所有链接.

理想情况下,我想在一个地方进行更改,并根据需要呈现所有链接.当然有一些我可以设置的东西,或者我可以覆盖的功能来实现这一点.

解决方法

我写了一个名为 How to build absolute action URLs using the UrlHelper class的博文,其中我提供了一个名为AbsoluteAction的自定义扩展方法.我鼓励你检查出来!
/// <summary>
/// Generates a fully qualified URL to an action method by using
/// the specified action name,controller name and route values.
/// </summary>
/// <param name="url">The URL helper.</param>
/// <param name="actionName">The name of the action method.</param>
/// <param name="controllerName">The name of the controller.</param>
/// <param name="routeValues">The route values.</param>
/// <returns>The absolute URL.</returns>
public static string AbsoluteAction(this UrlHelper url,string actionName,string controllerName,object routeValues = null)
{
    string scheme = url.RequestContext.HttpContext.Request.Url.Scheme;

    return url.Action(actionName,controllerName,routeValues,scheme);
}

ASP.NET MVC包含生成绝对URL的内置功能,尽管不是非常直观的方式.

UrlHelper.Action()方法有几个重载,使您能够传递其他参数,如路由值,要使用的协议和URL的主机名.如果您使用任何允许您指定协议参数的重载,生成的URL将是绝对的.因此,以下代码可用于为HomeController的About操作方法生成绝对URL:

@Url.Action("About","Home",null,"http")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读