#c# #asp.net-mvc
#c# #asp.net-mvc
Вопрос:
У меня небольшая проблема с привязкой <input>
значения к маршрутизации действия получения начальной формы при отправке.
Во-первых, соответствующий код :
[Route("Company/{companyID:int}/MarketOffers/{PagingParam.PageNumber=1}")]
public ActionResult MarketOffers(int companyID, PagingParam pagingParam)
* Это декларация действий, с которой я имею дело. PagingParam имеет свойство PageNumber типа int.
@using (Html.BeginForm(RouteDataHelper.ActionName, RouteDataHelper.ControllerName, FormMethod.Get, new { companyID = Model.Info.CompanyID }))
* В начальной форме я использую только идентификатор компании, потому что номер страницы будет меняться в зависимости от того, что пользователь нажимает на веб-сайте, и из-за этого он здесь не указан.
<input id="PagingParam.PageNumber" name="PagingParam.PageNumber" type="hidden" value="1">
* Это ввод, значение которого должно быть добавлено к URL. Оно находится внутри формы, код генерации которой вы видите выше. Значение изменяется с помощью javascript непосредственно перед отправкой формы.
Когда я ввожу ссылку, например :
http://localhost:38120/Company/2037/MarketOffers/3
* Все в порядке. Параметр PagingParam.PageNumber устанавливает его значение равным 3. Это желаемое поведение.
Но когда я отправляю форму с параметром PagingParam.Поле ввода номера страницы, тогда мой URL-адрес выглядит так :
http://localhost:38120/Company/2037/MarketOffers?PagingParam.PageNumber=2
Вместо
http://localhost:38120/Company/2037/MarketOffers/2
Я точно знаю, что мог бы справиться с этим и изменить значение действия формы с помощью javascript jQuery, но у меня такое чувство, что есть способ сделать это автоматически в MVC без написания JavaScript.
Итак, вопрос в следующем: могу ли я что-то сделать, чтобы автоматически генерировать желаемую ссылку, когда я передаю форму, действие которой (например) «/Company /2037 /MarketOffers» и добавить параметр PagingParam.Номер страницы для сгенерированного URL-адреса без написания JavaScript?
Ответ №1:
Все входные данные внутри формы, которые создают GET, имеют свои значения, добавленные в качестве параметров строки запроса, поскольку браузер не знает о маршрутах на вашем сервере.
Его невозможно сгенерировать ../Company/2037/MarketOffers/3
без использования javascript для изменения action
атрибута формы
Комментарии:
1. Это очень жаль. Спасибо за помощь.