我试图做这在我的Razor视图:通行证可空布尔值,局部视图不工作时值为null
@{ Html.RenderPartial("_Checkbox", Model.SomeNullableBoolean); }
_Checkbox.cshtml:
@model bool?
@if (Model == null)
{
Some code
}
else if (Model == true)
{
Some other code
}
这工作得很好,只要因为Model.SomeNullableBoolean
设置为true
或false
。 但是,如果该值为null我收到以下错误:
The model item passed into the dictionary is of type 'System.Data.Entity.DynamicProxies.MyAwesomeModel_EB6A12E11ECADA2C6B22289ACDF73813854383896F2E78956FDFFE6225F0404F', but this dictionary requires a model item of type 'System.Nullable`1[System.Boolean]'.
模型内部可空属性(MyAwesomeModel
)的定义是这样的:
public bool? SomeNullableBoolean { get; set; }
任何想法如何,我应该作进一步调查?
据我所知,布尔不能为空。 – Pavvy
当您将模型传递给部分为null的模型时,默认情况下它将在主视图中传递模型(在您的示例中为'MyAwesomeModel' –
)您可以改为传递一个新的'ViewDataDictionary'(使用[this overload ](https://msdn.microsoft.com/en-us/library/system.web.mvc.html.partialextensions.partial(v = vs.118)的.aspx#L:System.Web.Mvc.Html.PartialExtensions .Partial%28System.Web.Mvc.HtmlHelper,System.String,System.Web.Mvc.ViewDataDictionary%29)) –