指定演员表无效

时间:2011-09-15 06:07:27

标签: c# asp.net asp.net-mvc

我有一个布尔复选框,当我调试时,我得到指定的强制转换无效的错误。我做错了什么?

<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). 

谢谢

4 个答案:

答案 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" : "" %>