ASP.NET技术问询:如何获取URL中Category后的最后部分作为页面标题
解决方法:提取URL中Category后的部分作为页面标题
嘿,我明白你的需求啦——你想把URL里Category/之后的内容当成页面标题,而不是显示整个路径。之前的代码直接输出了完整的RawUrl,所以才会带上前面的/Category/部分,咱们来改改:
方法一:字符串分割+URL解码
直接把RawUrl按/Category/分割,取后面的部分,再解码URL里的转义字符(比如%2c对应逗号,%20对应空格):
// 在后台代码或者页面代码块里处理 var rawUrl = Page.Request.RawUrl; // 分割字符串,取/Category/之后的部分 var titleSegment = rawUrl.Split(new[] { "/Category/" }, StringSplitOptions.None).LastOrDefault(); // 解码URL编码的特殊字符,同时处理无匹配的情况 var pageTitle = string.IsNullOrEmpty(titleSegment) ? "默认标题" : HttpUtility.UrlDecode(titleSegment);
然后在页面里输出:
<h2><%: pageTitle %></h2>
方法二:利用URL Segments(更可靠)
Request.Url.Segments会把URL拆分成一个个分段,我们可以直接取最后一个分段,再处理掉开头的斜杠并解码:
var urlSegments = Page.Request.Url.Segments; // 取最后一个分段,去掉开头的/ var titleSegment = urlSegments.Last().TrimStart('/'); // 解码并处理空值 var pageTitle = string.IsNullOrEmpty(titleSegment) ? "默认标题" : HttpUtility.UrlDecode(titleSegment);
这样处理后,就能得到你想要的Laptops, PC, HardDrives作为页面标题啦!
内容的提问来源于stack exchange,提问作者bob
相关产品推荐
相关产品推荐

