【问题标题】:Object error with trying to return documents (Umbraco Document API)尝试返回文档时出现对象错误(Umbraco Document API)
【发布时间】:2011-05-05 14:57:32
【问题描述】:

我正在使用一种递归方法来显示我有权查看的所有文档。第一遍效果很好,但是当它以递归方式调用自身并传递当前文档的子文档数组时会引发错误:

对象引用未设置为 对象的实例。说明:一个 期间发生未处理的异常 当前网络的执行 要求。请查看堆栈跟踪 有关错误的更多信息 以及它起源于代码的位置。

异常详情: System.NullReferenceException:对象 引用未设置为 对象。

代码如下:

protected void Page_Load(object sender, EventArgs e)
{
    lblTest.Text = "Data<br /><br />";
    Document[] releaseDocs = Document.GetRootDocuments();
    displayDocs(releaseDocs);
}
public void displayDocs(Document[] releaseDocs)
{
    string docPermissions = null;
    User currentUser = User.GetCurrent();
    foreach (var doc in releaseDocs)
    {
        docPermissions = currentUser.GetPermissions(doc.Path);
        if ((docPermissions.Contains("F")) && (docPermissions.Contains("U")))
        {
            lblTest.Text += "D/T: " + doc.CreateDateTime + "<br />\r\n";
            lblTest.Text += "Level: " + doc.Level + "<br />\r\n";
            lblTest.Text += "Text: " + doc.Text + "<br />\r\n";
            lblTest.Text += "<hr />\r\n";
            if (doc.HasChildren)
            {
                 Document[] childDocs = Document.GetChildrenForTree(doc.Id);
                 displayDocs(childDocs); //error occurs here
            }
        }
    }
}

【问题讨论】:

    标签: c# asp.net content-management-system umbraco content-management


    【解决方案1】:

    Document.GetChildrenForTree(doc.Id) 方法是否有可能返回 null?

    【讨论】:

    • 我想到了这一点,并在它周围放了一个 try/catch。但它仍然对我失败。在我调用它之前,我还验证了 HasChildren 已设置为 true。并不是说你可以依赖它,但理论上如果它“有”孩子,那么它不应该为空。
    • 这可以在 our.umbraco.org 上询问
    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2014-01-21
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多