我在VB.Net中使用ASP.Net MVC 4,我已經看到了一些關於如何在c#中爲可空布爾值創建複選框的其他答案。通常轉換爲VB.Net非常簡單。這我想不通。CheckBoxFor VB.Net中的可空布爾值
其他的答案說,要做到這一點..
做出Boolean.cshtml在我EditorTemplates文件夾,並堅持
@model bool?
@Html.CheckBox("", Model.GetValueOrDefault())
所以,我嘗試了VB equivelent,在EditorTemplates我的文件夾作出Boolean.vbhtml並把這
@model System.Nullable(of Boolean)
@Html.CheckBox("", Model.GetValueOrDefault)
然後在我看來我有
@Html.EditorFor(Function(x) x.myNullableBool)
即代碼拋出該異常:
對象變量或帶塊變量未設置。
我發現了幾個不同的地方,它們與我們發佈的非常相似的c#示例非常相似。有誰知道如何讓這個工作在VB.Net?
編輯
這是什麼樣的,我試圖做(如果它的工作它會是更好)
@model System.Nullable(of Boolean)
@Html.CheckBox("", If(Model is Nothing, False, Model))
在您的ViewModel中使用Nullable(布爾值),但是使用複選框設置它的目的是什麼?仍然有三個可能的'價值'。改用兩個不同的ViewModel代替。如果你目前綁定你DomainModel我會建議使用ViewModels來代替。 – nik
@milter - 我總是希望2個值中的一個值爲真或假,數據庫必須保持爲空,因爲數據可以來自其他來源,並且從這些來源可以爲空,在我的情況下,如果它恰好爲空 - 強制它爲假是好的 –