Я новичок в MVC и у меня в контроллере есть следующий ActionMethod:
public async Task<ActionResult> ViewSsoProviders(int? page, string nameFilter = "", string bpIdFilter = "",
string protocolFilter = "")
Я пытаюсь вызвать его через следующую форму на мой взгляд:
@{
using (Html.BeginForm("ViewSsoProviders", "SsoAdmin", new
{
page = 1,
nameFilter = Model.ProviderNameFilter,
bpIdfilter = Model.BusinessPartnerIdFilter,
protocolFilter = Model.ProtocolFilterSelection
}))
{
<div id="providerForm">
@Html.ValidationSummary()
<div class="form-group row">
<span class="col-sm-4">
@Html.LabelFor(m => m.ProviderNameFilter)
@Html.TextBoxFor(m => m.ProviderNameFilter, new {@class = "form-control"})
</span>
<span class="col-sm-4">
@Html.LabelFor(m => m.BusinessPartnerIdFilter)
@Html.TextBoxFor(m => m.BusinessPartnerIdFilter, new {@class = "form-control", style = "display: block"})
</span>
<span class="col-sm-4">
@Html.LabelFor(m => m.ProtocolFilterOptions)
@Html.TranslatedDropDownListFor(m => m.ProtocolFilterSelection, Model.ProtocolFilterOptions, new {id = "ddlProtocols", @class = "form-control"})
</span>
</div>
<button class="btn" type="submit" value="Filter">@Html.Translate("Filter")</button>
</div>
Метод используется, однако фильтрам не присвоены значения, я могу жестко закодировать переменную 'page', и она достигнет моего контроллера с правильным значением, поэтому проблема не в самой маршрутизации.Есть ли здесь какая-то очевидная причина, по которой моим переменным маршрута не удалось бы присвоить значения?
Редактировать: Стоит отметить, что если я вместо этого передам 'null', а не любые значения маршрута в представлении, я смогу передать модельк контроллеру только с полями в форме назначенных данных.