Mam aplikację ASP.NET MVC, która wyświetla listę elementów. Moim zdaniem Strona I pętli nad elementami i czyni każdą pozycję z częściowym widokiem, tak:Html.HiddenFor binding do niewłaściwego elementu
@foreach(var item in Model.items)
{
<li>
@Html.Partial("ItemView", item)
</li>
}
W widoku elementu, ja owinąć każdą pozycję z formularza, który ma przycisk „Usuń”, jak poniżej:
@using(Html.BeginForm(...))
{
@Html.HiddenFor(m=>m.Id)
<label>@Model.Name (@Model.Id)</label>
<input type="submit" value="Delete"/>
}
Pozycje są renderowane prawidłowo, strona wynikowa ma ładną listę wszystkich pozycji z ich własnymi nazwami i identyfikatorami wyświetlanymi.
EDYCJA: To samo dzieje się z @Hidden, widocznie, w przeciwieństwie do tego, co napisałem wcześniej.
Ponadto dzieje się tak tylko przy drugim renderowaniu formularza (to znaczy po kliknięciu jednego z przycisków Delete), gdy wszystko działa po raz pierwszy. Moje metody działania wyglądają następująco:
public ActionResult AllItems()
{
var model = new AllItemsModel();
return PartialView(model);
}
public ActionResult Delete(DeleteModel model)
{
.... Perform the delete ...
return PartialView("AllItems", new AllItemsModel());
}
Dlaczego tak się dzieje?
Wow, doskonała obserwacja. Sprawdzę, myślę, że go nie mam. – zmbq
Twoja pierwsza sugestia nie była poprawna, ale twoja druga wydaje się obiecująca. Szkoda, że nie mogę dać +1 dwukrotnie ... Sprawdzę to. – zmbq
Tak, to było dokładnie to. Wielkie dzięki! – zmbq