我为了简洁而留下了一些代码......
int id = Convert.ToInt32(Page.RouteData.Values["id"]);
var q = db.Categories.SingleOrDefault(x => x.categoryID == id);
ddlCategory.SelectedValue = q.parentID == 0 ? 0 : id.ToString();
我收到错误:
无法确定条件表达式的类型,因为'int'和'string'之间没有隐式转换(它正在讨论id.ToString()
篇。)
我尝试了Convert.ToString()
,我尝试将(string)
放在id
的前面,但这不起作用。
答案 0 :(得分:11)
因为三元的两个返回值不是同一类型 - 一个是int
而另一个是string
。编译器无法推断出三元表达式的返回类型是什么。
解决方案:从两个分支返回相同的类型,或将其中一个转换为另一个分支的基础。 object
会很好。
答案 1 :(得分:5)
因为您正在尝试使三元运算符求值为int(0
)或字符串(id.ToString()
)。将0
替换为"0"
。