2012-05-08 44 views
0

我有下面的類:如何在我的視圖中使用ASP MVC設置複選框?

public class City { 
     public string Name { get; set; } 
     public bool CityValid { get; set; } 
    } 

我知道如何設置的名字,但我怎麼可以設置CityValid字段,以便它就像一個複選框。我想這樣做,而不使用HTML助手。

+3

可能你只是解釋 「沒有htmlHelpers」 的原因是什麼?這看起來很奇怪... –

+0

我有更多的邏輯,我想適合周圍的事情。例如,我會在循環中執行此操作,並向複選框添加不同的名稱。 checkbox_1等。這就是我想在沒有幫手的情況下做的原因。謝謝。 –

+1

如果您有一個複選框列表,您可能需要考慮使用類似的東西http://stackoverflow.com/a/4057281/491950 – Rob

回答

3

如果你真的不想使用助手,你可以使用一個普通的HTML輸入標記:

<input type="checkbox" id="CityValid" name="CityValid" value="@Model.CityValid" /> 
<input type="hidden" id="CityValue_Hidden" name="CityValid" value="false" /> 

name屬性必須匹配你的財產的名稱,以便該模型粘結劑將正確地把它撿起來,當你回發到服務器。

當您使用助手時,會生成類似於上述標記的內容。隱藏字段的值是總是與表單發佈數據一起發送,無論您是否選中該複選框(如果您未選中複選框,默認情況下不會發送任何值,甚至不會發送'false' )。

但是,除非你做的事情真的很奇怪,我建議你堅持使用助手。或者:

@Html.CheckboxFor(m => m.CityValid) 

@Html.EditorFor(m => m.CityValid) 
1

在你看來,你可以使用EditorFor幫手:

@model City 
... 
@Html.EditorFor(x => x.CityValid) 

的布爾字段的默認編輯模板生成一個複選框。

+0

即使這是一個奇怪的請求,她提到沒有HTML助手 – Dante

+0

我認爲*沒有HTML幫手*她/他的意思是*不使用Html.CheckBoxFor幫手*。 –

0

你可以先用HTML輔助創建它,看看那被運行頁面時創建的標記,然後重新創建標記......

相關問題