【问题标题】:Umbraco 8: Get reference to DocumentType definition in WebAPI classUmbraco 8:获取对 WebAPI 类中 DocumentType 定义的引用
【发布时间】:2020-06-24 14:40:19
【问题描述】:

Q) 如何在我的 UmbracoAPIController 类中获取对 DocumentType 定义的引用,以便对属性进行 LINQ 查询?

背景:
我有一个从 JS 调用的 WebAPI 端点,它从我的数据库中获取 Book 项目。我想在我的 LINQ 查询中基于 input 变量(例如 ISBN)进行过滤。为此,我需要在 UmbracoAPIController 类中导入 DocumentType 定义。

尝试以下,Book 是我要转换为的类型:

var parent = Umbraco.ContentAtRoot().First().Children().FirstOrDefault(x => x.Name == "Booklist");
if (parent != null) 
{
    var isbn = HttpContext.Current.Request.Params["isbn"];

    var books = parent.Children().Cast<Book>().Where(b => b.Isbn == isbn);

    foreach (var book in books) 
    {
        // Do something here....
    }
}

中断错误:

 The type or namespace name 'Book' could not be found (are you missing a using directive or an assembly reference?)

注意:请不要告诉我,除非您有明确、更好的替代方案,否则我只是在以“错误”的方式做所有事情,谢谢。

【问题讨论】:

    标签: c# asp.net-web-api reflection umbraco umbraco8


    【解决方案1】:

    我不知道这是否有帮助,但我不做直接转换(甚至没有尝试过),只是直接使用默认属性值,例如

    var books = parent.Children().Where(page => page.HasProperty("Isbn") &&
                                            page.HasValue("Isbn") &&
                                            page.Value<string>("Isbn") == Isbn);
    

    有兴趣了解直接演员的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多