我有一个布尔复选框,当我调试时,我得到指定的强制转换无效的错误。我做错了什么?
<input type="checkbox" name="spam" <%if ((bool) ViewData["spam"]) Response.Write("checked"); %><%if (teststring.Length==0) Response.Write("disabled"); %>/> Check here if you want to receive junk mail (spam).
谢谢
答案 0 :(得分:2)
尝试使用 'Convert.ToBoolean(计算机[ “垃圾邮件”])' 代替 bool)ViewData [“spam”]
答案 1 :(得分:2)
此错误意味着您将未布置值设置为ViewData [“spam”](甚至不设置它)。要处理这种情况,请编写下一个代码:
<input type="checkbox" name="spam"
<%if (ViewData["spam"] is bool && (bool) ViewData["spam"]) Response.Write("checked"); %>
<%if (teststring.Length==0) Response.Write("disabled"); %>/>
Check here if you want to receive junk mail (spam).
请记住,您必须手动设置ViewData [“spam”]。
答案 2 :(得分:0)
Casting error
转换为some value
specific type
,则会出现 incompatible
,例如,如果您想将abc
转换为{{1}它会bool
。您throw exception
的一个原因可能是exception
可能是ViewData["spam"]
,或者包含null
not compatible
类型的值。你可以做到
boolean
答案 3 :(得分:0)
将布尔值放在视图数据中:
ViewData["spam"] = mypatient.spam;
或检查字符串:
<%= ViewData["spam"].ToString() == "Y" ? "checked" : "" %>