Я отвечу, следуя потоку моего понимания:
Предположим, у меня есть список билетов. Когда пользователь впервые заходит на страницу тикетов / индекса, я хочу показать все открытые тикеты и установить переключатель с именем ticketStatus и значением Open.
<div class="statusfilter">
<%foreach(TicketStatus status in view.PickableTicketStatus){%>
<input
type="radio"
name="ticketStatusFilter"
value="<%=status%>"
<%= viewlogic.IsSelectedStatusFilter(status) ? "selected='selected'" : "" %>
/>
<%}>
</div>
<ul class="tickets">
<%foreach(var t in view.Tickets){%>
<li>
<input type="hidden" name="ticketsToChange" value="<%=t.Key%>" />
<%=t.Title.AsHtmlEncoded()%>
</li>
<%}%>
</ul>
Если пользователь проверяет переключатель «Закрыто» со значением «Закрыто» и именем ticketStatus, я хочу сделать отправку и получить список закрытых билетов, вернуться на страницу «Мои билеты / индекс» и проверить переключатель «Закрыто».
1: вам нужно обработать событие изменения на всех входах type = "radio"
<!-- with jquery -->
$(document).ready(function(){
// register anonymous event handler to status radio change
$('div.statusfilter input[type='radio']")
.change(function(){
// see 2:
});
});
2: вам нужно опубликовать выбранный статус на сервере и получить ответ, два решения:
- запрос ajax и получение ответа
- обычное обновление http
некоторые рекомендации:
если это ваша основная форма: используйте a и используйте ajax для других частей пользовательского интерфейса (окно поиска, навигация ...)
Подумайте, почему вы публикуете данные (ajax или plain), если вам нужно только отобразить билеты и переключиться с некоторым контролем, предпочтите одно из этих решений:
- используйте обычный href и получите параметры URL
- использовать частичное обновление списка заявок
, чтобы получить лучший дизайн с несколькими элементами для статуса, используйте вкладку или удобный пользовательский интерфейс
если вам нужно больше подробностей, не стесняйтесь задавать любой конкретный вопрос.
Надеюсь, это поможет
редактировать:
- просто упомяну, что этот вопрос будет не принадлежать asp.net mvc, это общий сценарий html / http / form
- также не навязывайте ajax вашему клиенту, верхняя часть навигации должна обрабатываться с помощью get / post на начальном уровне, затем добавляется неинтрузивный ajax для навигации