【发布时间】:2012-02-03 00:59:19
【问题描述】:
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有值,如果没有则跳过。
代码完美运行,但在许多控制器的许多操作中,我必须设置 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() 方法在哪里,我将处理 null 结果。 我该怎么做?
【问题讨论】:
-
这个问题可能看起来很傻,但我不知道该搜索哪个主题?