Umbraco 7-通过返回空值的名称获取父节点

时间:2019-12-22 11:15:29

标签: asp.net-mvc umbraco umbraco7

我对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);
});

2 个答案:

答案 0 :(得分:1)

也许您的UmbracoContext尚未设置?或者也许您可以尝试将当前页面ID传递给控制器​​,获取节点,遍历树并以这种方式找到单个“ true”父对象?

答案 1 :(得分:0)

我找到了解决问题的方法。我要查找的页面无法作为ContentType使用,因此它返回“ null”。当我创建相应的页面时,它就会出现在列表中并可以解决它。但是您的意见绝对有帮助。谢谢