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