Sitefinity博客自定义URL获取:MVC视图如何提取该字符串
解决Sitefinity MVC视图中提取博客文章自定义URL段的问题
嘿,我之前在Sitefinity项目里也遇到过一模一样的问题!确实,ItemViewModel作为通用视图模型,并没有直接暴露自定义URL的字符串属性,但我们可以通过访问底层的原生博客文章对象来拿到它。
具体操作步骤:
- 转换底层内容对象:
ItemViewModel的Item属性对应着内容类型的原生实例(这里就是BlogPost对象),我们只需要把它转换成BlogPost类型即可。 - 获取自定义URL段:你在编辑博客文章时设置的自定义URL字符串,其实存储在
BlogPost的UrlName属性里——不管是手动输入的自定义值,还是系统自动生成的标题衍生值,这个属性都会准确返回对应的URL段。
视图代码示例:
如果是强类型视图(比如@model ItemViewModel<BlogPost>),可以直接写:
<p>自定义URL段:@Model.Item.UrlName</p>
如果是通用的ItemViewModel视图,需要先做类型转换:
@model Telerik.Sitefinity.Frontend.Mvc.Models.ItemViewModel @{ var blogPost = Model.Item as Telerik.Sitefinity.Blogs.Model.BlogPost; if (blogPost != null) { // 这里拿到的就是你要的自定义URL字符串 var customUrlSegment = blogPost.UrlName; <p>自定义URL段:@customUrlSegment</p> } }
补充说明:
UrlName属性返回的就是编辑界面「URL」字段里的纯自定义字符串,不会包含站点前缀、页面路径等额外内容,完全符合你不想用HyperLinkHelpers.GetDetailPageUrl生成完整URL的需求。- 如果你的项目里还有其他内容类型(比如新闻、自定义内容)需要提取自定义URL段,逻辑是一样的——把
Item转换成对应的原生内容类型,然后访问UrlName属性即可。
内容的提问来源于stack exchange,提问作者Randy Hall
相关产品推荐
相关产品推荐

