2013-10-18 69 views
0

我正在修改現有的asp.net mvc應用程序,該應用程序從模型列表創建一個複選框列表,屬性名稱爲「MyModelProperty」,並且還爲「全選」生成了另一個輸入元素,它具有以下html:asp.net mvc如何綁定到一個空的複選框值?

<input name="MyModelProperty_SelectAll" type="checkbox" CHECKED="checked" value=""/> 

什麼是模型中的屬性聲明將創建一個布爾屬性,將綁定到視圖中的這個現有的元素?

我試過了,'public bool MyModelProperty_SelectAll {get; set;}'但它返回null。那是因爲這個值在html輸入控件中是一個空字符串嗎?

回答

2

更改Model財產字符串

public string MyModelProperty_SelectAll { get; set; } 

設置爲checkbox一定的價值,然後在服務器上,如果選中,是給定,否則你將會看到null

<input name="MyModelProperty_SelectAll" type="checkbox" value="all"/> 

編輯:

如果你想要把它綁定到一個布爾值,你必須提供一個value="true"和一個隱藏字段:

<input class="input-validation-error" id="MyModelProperty_SelectAll" name="MyModelProperty_SelectAll" type="checkbox" value="true"> 
<input name="MyModelProperty_SelectAll" type="hidden" value="false"> 

此示例代碼上面用的是產生Html.CheckBox幫手。

+0

的應用已在JavaScript邏輯依賴於「全選」複選框,使值「」,所以我正在尋找一種方法來保持它爲空字符串。在這種情況下,有什麼其他方法可以在模型上獲得布爾屬性? –

+0

好吧,只需更改邏輯來驗證javascript中的給定值,更有意義! – Fals

2

如果不使用MVC htmlhelpers生成複選框,你必須爲你的複選框添加一個額外的隱藏元素:

<input name="MyModelProperty_SelectAll" type="checkbox" value="true"/> 
<input name="MyModelProperty_SelectAll" type="hidden" value="true"/>