Szalony problem ze złożeniem wartości w Html.Checkbox w ASP.NET MVC RCMVC Html.CheckBox i forma przedstawienia emisyjnej
Niektóre wartości nie są po prostu przyjść do Request.Params
Na moim formularzu mam ten wiersz wewnątrz cyklu:
<%=Html.CheckBox("cb" + p.Option.Id, p.Option.IsAllowed, new { value = 6 })%>
i renderuje do następnej:
<input checked="checked" id="cb17" name="cb17" type="checkbox" value="6" />
<input name="cb17" type="hidden" value="false" />
<input checked="checked" id="cb18" name="cb18" type="checkbox" value="6" />
<input name="cb18" type="hidden" value="false" />
<input id="cb19" name="cb19" type="checkbox" value="6" />
<input name="cb19" type="hidden" value="false" />
<input id="cb20" name="cb20" type="checkbox" value="6" />
<input name="cb20" type="hidden" value="false" />
<input checked="checked" id="cb21" name="cb21" type="checkbox" value="6" />
<input name="cb21" type="hidden" value="false" />
Po wysłaniu formularza jestem coś takiego:
Form.Params["cb17"] = {6, "false"}
Form.Params["cb18"] = {6, "false"}
Form.Params["cb19"] = {"false"}
Form.Params["cb20"] = {"6,false"}
Form.Params["cb21"] = {"false"}
W ciągu żądanie Niektóre params wyświetlane są dwa razy (normalnej sytuacji), a niektóre tylko jeden raz (tylko wartość pola ukrytego). Wygląda na to, że nie zależy od tego, czy pole wyboru było zaznaczone czy nie, czy zmieniła się wartość ...
Czy ktoś miał do czynienia z taką sytuacją? Jak mogę obejść?
Twoje rozwiązanie jest całkiem dobre. Ale myślę o przesyłaniu formularza bezstanowego. W odniesieniu do Twojego przykładu nie wiem, ile obiektów mam w aplikacji [i] –
Właśnie zaktualizowałem. aplikacja [i] iterowała przez identyfikatory formularza, które znajdowały się na stronie. Gdy pole wyboru jest dynamicznie powiązane, musisz znaleźć identyfikator w DB, a następnie porównać każdą wartość z formularza – TStamper
Czy istnieje odpowiednie wyjaśnienie, dlaczego tak się dzieje? ? dlaczego "prawda, fałsz" dla prawdziwości? – chakrit