У меня есть таблица с сортируемыми заголовками, подкачкой (с использованием PagedList
), с фильтрами с кнопкой отправки (с использованием HtmlForm Get
). Используя любой из фильтров, или щелкая заголовки или номера страниц, следует выполнить запрос Get и обновить таблицу с той же строкой запроса. Однако у меня есть проблема:
Заголовки и страницы являются ссылками действий, а сами фильтры были созданы с использованием @Html.TextBox
, DropDownList
и т. Д. И имеют кнопку отправки
В моем ActionLink
мне нужно иметь возможность передавать все параметры, включая значения, которые в настоящее время находятся в форме фильтра:
@Html.ActionLink("< Prev", "Index",
new {Value1 = (Value in TextBox),
Value2 = ViewBag.Something,
Value3 = ect...})
и есть также кнопка отправки для фильтров, и если она нажата, мне нужно иметь возможность добавить дополнительную информацию в строку запроса из моего Viewbag, который содержит значение заголовка сортировки и должен отправить значение из модель с номером страницы.
Есть ли вообще что-то, что я пытаюсь сделать?
(я думал о том, чтобы превратить кнопку отправки из входа в ссылку действия, но я все еще не знаю, как получить текущие значения из Html.TextBox
и т. Д.) ...
EDIT
Я создал новый объект фильтра, который теперь отправляю в качестве параметра моему контроллеру. Тем не менее, у меня есть ссылки на некоторые действия для заголовков моей таблицы и для страниц. Я не знаю, как я могу изменить свой объект фильтра, когда на него щелкают, не создавая действия для каждого заголовка и кнопки страницы в моем контроллере. Это даже плохая идея? Например:
ActionResult NextPage(Filter filter);...
ActionResult Header1(Filter filter);...
...
Если я не сделаю это таким образом ... Я не знаю, как узнать, на какую ссылку действия щелкнул пользователь ... и я не могу использовать routedatadictionary, потому что я могу только отправить свой объект фильтра или куча параметров не обоих ...
Другая идея заключается в том, чтобы отправить все свойства модели фильтра, а также имя ссылки, как в строковом запросе, а затем перестроить фильтр в контроллере ...