我对Umbraco还是陌生的,他试图解决TypedContentAtRoot()返回null的问题。 我必须获得单击按钮后必须将用户重定向到的子节点的URL。子页面已作为子代添加到父页面,我已经确认相同。
这是我用来检索当前页面的parentNode的代码。
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var homeNode = umbracoHelper.TypedContentAtRoot().Where(w =>
w.ContentType.Alias.Equals("HomePage"));
var descendants =homeNode.DescendantsOrSelf("SubmittedPage");
var confirmationPage = descendants.FirstOrDefault();
return confirmationPage?.Url;
为了验证这一点,我进行了一次检查,以获取当前的PageID,该ID也将返回null。
var currentPageId = UmbracoContext.Current.PageId;
基本上,我有一个主页作为文档类型。它具有我已确认存在的各种子页面。有一些jQuery验证发送一个get请求来检索confirmationPage Url,如下面的代码所示。
$.get('/Umbraco/Api/ConfirmationPageUrl',
function(data) {
window.location.replace(data);
});
答案 0 :(得分:1)
也许您的UmbracoContext尚未设置?或者也许您可以尝试将当前页面ID传递给控制器,获取节点,遍历树并以这种方式找到单个“ true”父对象?
答案 1 :(得分:0)
我找到了解决问题的方法。我要查找的页面无法作为ContentType使用,因此它返回“ null”。当我创建相应的页面时,它就会出现在列表中并可以解决它。但是您的意见绝对有帮助。谢谢