C# 可为Null的对象的值必须为ASP.NET MVC 5复选框
嗨,我有一个复选框C# 可为Null的对象的值必须为ASP.NET MVC 5复选框,c#,asp.net-mvc,checkbox,C#,Asp.net Mvc,Checkbox,嗨,我有一个复选框 @Html.CheckBoxFor(model => model.VisitRequested.Value, new {onClick = "showHide();"}) 如果未单击复选框,它将抛出异常(如上)。如果复选框保持未选中状态,我希望该值为0或false 型号代码为: [DisplayName("Request a Visit")] public Nullable<bool> VisitRequested { get; set; } [Disp
@Html.CheckBoxFor(model => model.VisitRequested.Value, new {onClick = "showHide();"})
如果未单击复选框,它将抛出异常(如上)。如果复选框保持未选中状态,我希望该值为0或false
型号代码为:
[DisplayName("Request a Visit")]
public Nullable<bool> VisitRequested { get; set; }
[DisplayName(“请求访问”)]
公共可空访问请求{get;set;}
是,这是因为model.HasValue
为false。添加
if (model.VisitRequested.HasValue)
@Html.CheckBoxFor(model => model.VisitRequested.Value, new {onClick = "showHide();"});
else
//somethings wrong, not sure what you want to do
基本上,这表示对象为空。在文档中可以找到
例外情况:无效操作例外 条件:
HasValue属性为false
这就是您所遇到的。可为null的
属性的值
在值为null时抛出一个无效操作异常
(实际上是当HasValue==false时)。尝试:
只需使用model.VisitRequested
并最终将其包装在中,如果
:
@if (Model.VisitRequested.HasValue)
{
@Html.CheckBoxFor(model => model.VisitRequested, new {onClick = "showHide();"})
}
模型在当前上下文中不存在。我必须为代码使用@{}符号吗?@ASPCoder1450我不这么认为,我猜是其他一些小语法错误造成的。哦,是的,我刚看到。我来编辑。我从model
访问HasValue
,这时还有一层间接寻址。错误消息不直观:| System.Nullable不包含GetValueOfDefaultAn的定义System.Web.Mvc.dll中发生类型为“System.InvalidOperationException”的异常,但未在用户代码中处理其他信息:模板只能用于字段访问、属性访问、一维数组索引、,或者单参数自定义索引器表达式。我使用了GetValueOrDefault(false)您可以显示视图中的完整代码行吗?@Html.CheckBoxFor(model=>model.VisitRequested.GetValueOrDefault(false),新的{onClick=“showHide();”})可能重复的
@if (Model.VisitRequested.HasValue)
{
@Html.CheckBoxFor(model => model.VisitRequested, new {onClick = "showHide();"})
}