【问题标题】:Use of unassigned local variable LinqToLdap使用未分配的局部变量 LinqToLdap
【发布时间】:2023-03-29 01:51:01
【问题描述】:

我想在我的 MVC 中获取用户列表。

Visual Studio 一直说我是

“使用未分配的局部变量‘模型’”。

我尝试了不同的方法,但无法修复错误。谁能告诉我哪里做错了?

 public ActionResult Search(string searchTerm)       
 {
        var users = new DirectorySource<UserModel>(ROOT,SearchScope.Subtree);

        IEnumerable<UserModel> model;

        var res = from usr in users
                  where usr.DisplayName.StartsWith(searchTerm)                     
                  select usr.DisplayName;

        foreach (var result in res)
        {
            model.OrderBy(p => p.DisplayName).ToList();
        }

        if (Request.IsAjaxRequest())
        {
            return PartialView("_search", model);
        }

        return View(model);
 }

【问题讨论】:

    标签: c# asp.net-mvc active-directory linq-to-ldap


    【解决方案1】:

    你只是声明你的model,而不是实例化它。你应该在尝试调用它的方法之前实例化它(比如OrderBy)。其次,您不应该在 for 循环中执行 OrderBy ,只执行一次就足够了。您可能希望使用 Linq 查询的结果和末尾的 select usr 来实例化 model,而不是显示名称。

    var model = (from usr in users
                where usr.DisplayName.StartsWith(searchTerm)                     
                select usr).OrderBy(u => u.DisplayName).ToList();
    

    【讨论】:

      【解决方案2】:

      错误很清楚,使用前必须提供默认值。

      IEnumerable<UserModel> model = new List<UserModel>();
      

      IEnumerable<UserModel> model = null;
      

      这是为了消除你的错误,但你可以用下面的语句来简化你的代码。

      IEnumerable<UserModel> model =  users.Where(usr=>usr.DisplayName.StartsWith(searchTerm))
                                            .OrderBy(usr=>usr.DisplayName).ToList();
      

      【讨论】:

        【解决方案3】:

        代替:

        IEnumerable<UserModel> model;
        

        试试这个:

        List<UserModel> model = new List<UserModel>();
        

        或:

        IEnumerable<UserModel> model = new List<UserModel>();
        

        【讨论】:

          猜你喜欢
          • 2013-10-18
          • 2015-11-09
          • 2012-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多