Asp.net-Mvc-2

為什麼 CheckBoxFor 會產生執行時錯誤

  • September 23, 2013

CheckBox 連接到的欄位可以為空。

在我看來,我收到以下錯誤:

不能隱式轉換類型“bool?” ‘布爾’

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>

如何在不更改數據庫設計的情況下修復它?

Exclusive 不能為 Nullable,在評估表達式時對 ViewEngine 沒有意義。它必須選中或不選中復選框,並以trueorfalse值響應。您的模型需要有一個bool值,但這並不意味著您的數據庫必須知道這一點。您只需要在數據庫和模型之間的某處進行翻譯,例如。Model.Exclusive = DAO.Exclusive ?? false.

在不知道 null 在您的數據模式中代表什麼或如何生成模型對象的情況下,很難為您提供比這更多的細節。

編輯:還沒有測試過這個,但你可能會逃脫一些簡單的事情

public bool NoNullExclusive
{
   get { return Exclusive ?? false; }
   set { Exclusive = value; }
}

並更換

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>

<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %>

引用自:https://stackoverflow.com/questions/2490790