2015-04-24 151 views
1

有一个将被用于远程验证功能,但不能让它工作检查列表包含字符串

[HttpPost] 
public JsonResult doesUserNameExist(string Forename) 
{ 
    IEnumerable<SelectListItem> user = new List<SelectListItem>(); 
    using (EIPInternalEntities ctx = new EIPInternalEntities()) 
    { 
     user = new SelectList(ctx.Database 
           .SqlQuery<string>("EXEC dbo.uspGetLkUpJobTitle") 
           .ToList()); 
    } 

    var userlist = user.ToList(); 

    //return Json(user == null); 
    return Json(!userlist.Contains(Forename)); 
} 

尝试不同的方法,但目前的(用的名字))被标记为A级误差

“参数1不能从 '字符串' 转换为 'System.Web.Mvc.SelectListItem'

,如果我尝试

var userlist = (SelectList)user; 

//return Json(user == null); 
return Json(!userlist.Contains(Forename)); 

然后!userList。遭到举报,称

的SelectList不包含定义包含

+1

你为什么首先使用'SelectList'?使用一个普通的'列表' – SimpleVar

+0

嗨,谢谢,你能扩展一下吗?我很新c'和mvc – JQuery

回答

3

试试这个

return Json(!userlist.Any(x => x.Text == Forename)); 
+0

Perfect Thanks!did尝试.Any,但无法使其工作必须具备x => x.text部分。 – JQuery

2

你可以试试这个:

!userlist.Any(item => item.Text == Forename); 

userlistSelectListItem对象的列表。每个SelectListItem有三个属性,Name,ValueSelected。我想很明显你想要找到Text。如果你想寻找的价值,只是把上面的使用item.Value

+1

错字在这里'x.Text ==姓氏' – stefankmitph

+0

@stefankmitph非常感谢你发现这一点。 – Christos

+0

“无法将lambda表达式转换为”SelectListItem“类型,因为它不是委托类型。下面解决了问题,谢谢 – JQuery