我对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,并且也将其返回为null
var currentPageId = UmbracoContext.Current.PageId;
基本上,我有一个主页作为文档类型。它具有我已确认存在的各种子页面。有一些jQuery验证发送get请求来检索ConfirmationPage Url,如下面的代码所示。
$.get('/Umbraco/Api/ConfirmationPageUrl',
function(data) {
window.location.replace(data);
});
也许您的UmbracoContext尚未设置?或者,您可以尝试将当前页面ID传递给控制器,获取节点,遍历树并以这种方式找到单个“ true”父对象?