繁体   English   中英

传入字典的模型项是'System.Boolean'类型,但是这个字典需要一个'MyProject.checkboxstate'类型的模型项

[英]model item passed into the dictionary is of type 'System.Boolean', but this dictionary requires a model item of type 'MyProject.checkboxstate'

我有一个自定义的html帮助器,最后一个参数为bool类型。 当数据库中有数据时,我的代码工作正常。 但是,没有数据,它会抛出以下错误:

System.NullReferenceException:未将对象引用设置为对象的实例。

然后,我试图检查可能的“空值”并将值作为“假”发送到视图,显然,没有成功。

public ActionResult Index()
{            
    bool? defaultVal = true;

    var dbValue = context.checkboxstates.Where(c => c.Name == "Country").FirstOrDefault();
    if (dbValue == null)
    {
        return View(defaultVal);
    }               
    return View(dbValue);
}     

我的观点:

@model MyProject.CheckboxState
@Html.MyCustomHtmlHelper("text", "AnotherText", "changeState", Model.state)

在这里,Model.state负责根据数据库返回的值“检查”复选框“已检查”或“未选中”。 我没有模型,因为我正在使用数据库第一种方法。

如果我尝试从控制器显式传递一个布尔值,我收到此错误消息:

传递到字典中的模型项的类型为“System.Boolean”,但此字典需要“MyProject.checkboxstate”类型的模型项。

如果Modelnull尝试将默认值传递给自定义html帮助器:

@Html.MyCustomHtmlHelper("text", "AnotherText", "changeState", Model!=null?Model.state:false)

您不能将布尔参数传递给视图,因为它期望将CheckboxState类型的对象作为模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM