У меня есть представление списка в моем приложении MVC, которое показывает флажок рядом с каждой записью:
<% For Each item In Model%>
<%=Html.CheckBox("Selected", item.select_flag, New With {.onclick = "this.form.submit();"})%>
<%=Html.Hidden("ID", item.id)%>
<%=item.name%>
<br/>
<% Next%>
Как видно из onclick, я отправляю форму каждый раз, когда пользователь устанавливает флажок. В контроллере мое почтовое действие выглядит так:
<AcceptVerbs(HttpVerbs.Post)> _
Function List(ByVal Selected() As Boolean, ByVal ID() As String) As ActionResult
For i = 0 To ID.Count - 1
If Selected(i) Then
[use ID(i) to update a database row]
End If
Next
Return View(GetTheListOfNamesAndIds())
End Function
Итак, я получаю массив выбранных значений и идентификаторов после каждого щелчка флажка. Я предполагал, что они будут соответствовать, но я обнаружил, что два массива по какой-то причине не синхронизированы. Также слишком много обрабатывать весь список каждый раз, когда щелкается флажок, поэтому я хотел бы пересмотреть всю эту настройку.
Каков наилучший способ настроить это так, чтобы установка флажка обновляла определенную строку базы данных? Можно ли это сделать без перезагрузки списка каждый раз?