2012-03-28 7 views
5

Dies ist mein Ausblick:Get Ids von aufgegebenem Ankreuzfelder in MVC3

@foreach(var action in Model.Category.Actions) { 
<div class="action" style="margin-right: 30px;"> 
    <input type="checkbox" class="chk-act" id="@action.Id" name="actionChk" /> 
    <text>@action.Text</text> 
</div> 
    } 

und HTML-Dom ist wie die folgenden:

<input type="checkbox" class="chk-act" id="17" name="actionChk"> 
<input type="checkbox" class="chk-act" id="18" name="actionChk"> 
<input type="checkbox" class="chk-act" id="19" name="actionChk"> 

Also muss ich Ids erhalten geprüft. Wenn ich versuche, Werte, die durch Form Sammlung zu bekommen, zurückgegeben, die ich ein String-Array von on durch Länge geprüft Kontrollkästchen:

[HttpPost] 
public ActionResult Index(FormCollection collection) { 
    var actions = collection.GetValues("actionChk"); 
return View(); 
} 

Was ist Ihr Vorschlag?

+0

Da der Browser, Da sie alle denselben Namen haben, erhalten Sie das Array. Warum nicht den Namen zu actionChk17, actionChk18 usw. machen? – StuartLC

Antwort

9

Sie sollten

<input type="checkbox" class="chk-act" id="17" value="17" name="actionChk"> 
<input type="checkbox" class="chk-act" id="18" value="18" name="actionChk"> 
<input type="checkbox" class="chk-act" id="19" value="19" name="actionChk"> 

Dann von der Steuerung die Werte in der value Parameter setzen, können Sie eine Reihe von IdsactionChk die Eingabe des Namens (actionChk) werde nach dem Namen haben sollte

+0

Einfache und nützliche Antwort. – Armaan