2009-12-01 47 views
4

我有一個頁面,我列出了一個名爲TimeRange1,TimeRange2 .... TimeRange7複選框,和我產生他們在一個for循環是這樣的:該字符串未被識別爲有效的布爾串

<% for (int currentDay = 1; currentDay <= 7; currentDay++) 
......<%= Html.CheckBox("TimeRange" + currentDay.ToString(), false)%> 

廠直到我發佈表單,然後我得到一個「該字符串未被識別爲有效的布爾字符串。」

顯然問題是我連接了複選框的名稱。

有沒有一些簡潔的方法來解決這個問題?我需要讓他們命名爲1-7。這就像一個很大的時間表,你可以選擇哪些時間可用。

回答

5

嘗試沒有助手:

<% for (int currentDay = 1; currentDay <= 7; currentDay++) { %> 
    <input type="checkbox" name="TimeRange<%= currentDay.ToString() %>" /> 
<% } %> 

HTML輔助GET其值從:

  1. ViewData.ModelState["controlName"].Value.RawValue
  2. value傳遞給HTML助手方法的參數。

除複選框外,它們還生成隱藏的輸入字段。因此,根據上下文有時你可能最終得到這樣的標記:

<input type="checkbox" name="TimeRange1" value="SomeValue, false" /> 

,當你發佈表單中的數據綁定器將無法將該值轉換爲布爾類型。

相關問題