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

c# – 删除Request.Url的最后一个段

发布时间:2020-12-15 06:22:39 所属栏目:百科 来源:网络整理
导读:我想删除Request.Url的最后一个段,所以例如… http://www.example.com/admin/users.aspx/deleteUser 会变成 http://www.example.com/admin/users.aspx 我宁愿linq,但接受任何有效的解决方案. 解决方法 使用 Uri 类来解析URI – 您可以使用Segments属性访问所
我想删除Request.Url的最后一个段,所以例如…
http://www.example.com/admin/users.aspx/deleteUser

会变成

http://www.example.com/admin/users.aspx

我宁愿linq,但接受任何有效的解决方案.

解决方法

使用 Uri类来解析URI – 您可以使用Segments属性访问所有段,并重建没有最后一个段的URI.
var uri = new Uri(myString);

var noLastSegment = string.Format("{0}://{1}",uri.Scheme,uri.Authority);

for(int i = 0; i < uri.Segments.Length - 1; i++)
{
   noLastSegment += uri.Segments[i];
}

noLastSegment = noLastSegment.Trim("/".ToCharArray()); // remove trailing `/`

作为获取计划和主机名称的替代方法,Dour High Arch在他的评论中提出:

var noLastSegment = uri.GetComponents(UriComponents.SchemeAndServer,UriFormat.SafeUnescaped);

(编辑:李大同)

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

    推荐文章
      热点阅读