2015-04-24 189 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