Im проходящего список заказов на мой взгляд, и отображение их на экране:Отключить флажок работает только первый раз
@for (int i = 0; i < Model.AllOrders.Count; i++)
{
<text>
<tr>
<td width="15%">@Model.AllOrders[i].CustomerName</td>
<td width="15%">@Model.AllOrders[i].CustomerAddress</td>
<td width="15%">@Model.AllOrders[i].CustomerPhoneNumber</td>
<td width="15%">@Model.AllOrders[i].CustomerEmail</td>
<td width="15%">@Model.ModelBikeMapping[@Model.AllOrders[i].BicycleModel]</td>
<td width="15%">@Model.SizeMapping[@Model.AllOrders[i].BicycleSize]</td>
<td width="15%">@Model.ColourMapping[@Model.AllOrders[i].BicycleColour]</td>
<td width="15%">@Html.CheckBoxFor(x => @Model.AllOrders[i].Shipped)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].CustomerName)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].CustomerAddress)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].CustomerPhoneNumber)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].CustomerEmail)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].BicycleModel)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].BicycleSize)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].BicycleColour)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].Shipped)</td>
</tr>
</text>
}
</table>
<p>
<input type="submit" value="Update" />
</p>
Отсюда пользователь может установить или снять «Доставлено» флажок и нажмите кнопку «Обновить ', который передает новое «отправленное» значение обратно контроллеру, который обновляет таблицу db. Все это прекрасно работает. Однако, если флажок TRUE, я хочу отключить его, поскольку вы можете отправить товар только один раз.
IV пытался:
@if (@Model.AllOrders[i].Shipped)
{
<td width="15%">@Html.CheckBoxFor(x => @Model.AllOrders[i].Shipped, new { disabled = "disabled" })</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].Shipped)</td>
}
else
{
<td width="15%">@Html.CheckBoxFor(x => @Model.AllOrders[i].Shipped)</td>
<td width="15%">@Html.HiddenFor(item => Model.AllOrders[i].Shipped)</td>
}
Проблемы в том, что пользователь может обновить новую запись из неотправленного [F] погружено [T] и обновление БД правильно, но все существующей ИСТИНЫ «погруженных» значение передаются обратно как FALSE'нагружены 'контроллеру. Является ли это чем-то связанным с моей логикой или передачей скрытого? Просьба сообщить
две мысли здесь, 1. можете ли вы показать свою логику сообщений для обновления и 2. почему у вас есть скрытый для этого флажка? CheckBoxFor должно быть достаточно – nikolifish
Спасибо за ответ Niko .... Я должен был включить скрытое поле, чтобы передать значение POST, в то время как checkBoxFor отображает значение на экране. Моя логика сообщений для обновления работает нормально, потому что, если я не отключу флажок, все это работает. его только тогда, когда я пытаюсь отключить флажки, которые уже выбраны, когда они отправляются обратно в POST как FALSE вместо TRUE – John
Как выглядит ваша модель? Это просто контейнер для вашего списка заказов? – nikolifish