public ActionResult Update(string id)
{
Device record = new Device(); // OK
record = record.Find(new Guid(id), service); // OK
if (record.secondValue.HasValue) // <---
record.secondSelectList.FirstOrDefault(i => i.Value == record.secondValue.ToString()).Selected = true;
return View(record);
}
上面的代碼在設備中發現對於給定的ID,然後設置將DropDownList 如果secondValue具有值,如果不是則跳過。序列不包含匹配元件,FirstOrDefault
代碼工作完美,但在許多控制器許多動作我必須把一個IF條件,以檢查是否xxxValue確實有一個值。
我不能直接這樣做:
record.secondSelectList.FirstOrDefault(i => i.Value == record.secondValue.ToString()).Selected = true;
因爲隨時可能FirstOrDefault返回一個空引用,這將立即將拋出,因爲使用.Selected財產的異常。
好的,我的問題是如何設置DropDownList而不需要使用If條件?
我想代替使用FirstOrDefault(),我會使用SetSelected()。
record.secondSelectList.SetSelected(i => i.Value == record.secondValue.ToString());
SetSelected()方法在哪裏我將處理空結果。 我該怎麼做?
的問題可能有點傻,但我不知道要搜索的話題? – Anwar 2012-02-02 16:31:46