C# 未分配局部变量LinqToLdap的使用
我想获取MVC中的用户列表 VisualStudio一直说我 “使用未分配的局部变量‘model’” 我尝试过不同的方法,但无法修复错误。谁能告诉我哪里做错了C# 未分配局部变量LinqToLdap的使用,c#,asp.net-mvc,active-directory,linq-to-ldap,C#,Asp.net Mvc,Active Directory,Linq To Ldap,我想获取MVC中的用户列表 VisualStudio一直说我 “使用未分配的局部变量‘model’” 我尝试过不同的方法,但无法修复错误。谁能告诉我哪里做错了 public ActionResult Search(string searchTerm) { var users = new DirectorySource<UserModel>(ROOT,SearchScope.Subtree); IEnumerable<UserM
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);
}
公共操作结果搜索(字符串搜索术语)
{
var users=newdirectorySource(根,SearchScope.Subtree);
可数模型;
var res=来自用户中的usr
其中usr.DisplayName.StartsWith(搜索术语)
选择usr.DisplayName;
foreach(以res表示的var结果)
{
model.OrderBy(p=>p.DisplayName).ToList();
}
if(Request.IsAjaxRequest())
{
返回PartialView(“搜索”,模型);
}
返回视图(模型);
}
而不是:
IEnumerable<UserModel> model;
IEnumerable模型;
试试这个:
List<UserModel> model = new List<UserModel>();
列表模型=新列表();
或:
IEnumerable model=new List();
错误很明显,使用前必须提供默认值
IEnumerable<UserModel> model = new List<UserModel>();
IEnumerable model=new List();
或
IEnumerable模型=null;
这是为了消除错误,但您可以使用下面的语句简化代码
IEnumerable<UserModel> model = users.Where(usr=>usr.DisplayName.StartsWith(searchTerm))
.OrderBy(usr=>usr.DisplayName).ToList();
IEnumerable model=users.Where(usr=>usr.DisplayName.StartsWith(searchTerm))
.OrderBy(usr=>usr.DisplayName).ToList();
您只是在声明您的模型,而不是实例化它。您应该在尝试对其调用方法之前对其进行实例化(如OrderBy
)。其次,您不应该在for循环中执行OrderBy
,只需执行一次就足够了。您可能希望使用Linq查询的结果实例化模型
,并在最后选择usr
,而不是显示名称
var model = (from usr in users
where usr.DisplayName.StartsWith(searchTerm)
select usr).OrderBy(u => u.DisplayName).ToList();
IEnumerable<UserModel> model = users.Where(usr=>usr.DisplayName.StartsWith(searchTerm))
.OrderBy(usr=>usr.DisplayName).ToList();
var model = (from usr in users
where usr.DisplayName.StartsWith(searchTerm)
select usr).OrderBy(u => u.DisplayName).ToList();