Sitefinity MVC:如何在小部件模板的详细信息视图中获取内容项 Url

问题描述

我有一个带有自定义列表和详细信息小部件模板的自定义模块。在我的列表小部件模板中,我可以通过以下方式获取内容项 url:

@foreach (var item in Model.Items)
{
 var navigateUrl = HyperLinkHelpers.GetDetailPageUrl(item,ViewBag.DetailsPageId,ViewBag.OpenInSamePage,Model.UrlKeyPrefix); 
}

然后:

<a href="@navigateUrl">

为什么我不能在我的 Detail 小部件模板中做同样的事情并获得完整的内容 Item url?是否有不同的方法可以在 MVC 的 Detail 小部件模板中获取页面的完整 Url?

我收到这些构建错误

CS1061“ContentDetailsviewmodel”不包含“Items”的定义,并且找不到接受“ContentDetailsviewmodel”类型的第一个参数的可访问扩展方法“Items”(您是否缺少 using 指令或程序集引用?)

CS1061“ContentDetailsviewmodel”不包含“UrlKeyPrefix”的定义,并且找不到接受“ContentDetailsviewmodel”类型的第一个参数的可访问扩展方法“UrlKeyPrefix”(您是否缺少 using 指令或程序集引用?)

CS0103 当前上下文中不存在名称“navigateUrl”

解决方法

因此,如果您需要自己实现,请使用其中一种重载 https://github.com/Sitefinity/feather/blob/8c0bcde57c27322d48084485694f32e0714d15ee/Telerik.Sitefinity.Frontend/Mvc/Helpers/HyperLinkHelpers.cs#L32

用例是什么,你需要当前的 url,或者它就像一个相关的内容部分或其他东西?

旁注,你可以在这里浏览代码

https://github.com/Sitefinity/feather-widgets https://github.com/Sitefinity/feather https://github.com/Sitefinity/feather-packages

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...