У меня возникла проблема с вызовом метода контроллера, но он не имеет требуемого значения параметра, переданного ему: Любые идеи, в которых я ошибаюсь? (в настоящий момент параметр «query» равен null).MVC 5 - Ошибка маршрутизации
Действие контроллера
public ActionResult Search(string query, int page = 1)
{
if (!string.IsNullOrWhiteSpace(query)) return SearchResults(query, page);
return View(new ApplicationSearchViewModel());
}
Просмотр HTML
@model BluBrik.Mobile.WebUI.Models.ApplicationSearchViewModel
@{
ViewBag.Title = "Find Application";
}
<h2>Search</h2>
@using (Html.BeginForm("SearchResults", "Application", new { query = Model.SearchString }))
{
<div>
@Html.EditorFor(m => m.SearchString)
<input type="submit" value="Search" />
</div>
}
Route.config
routes.MapRoute(
name: null,
url: "Application/Search/{query}",
defaults: new { controller = "Application", action = "Search", query = UrlParameter.Optional }
);
Первый раз, когда ваш вид нагрузок, делает ваш Model.SearchString имеет значение: новой {запрос = Модель .SearchString} –
Нет, Model.SearchString является автоматическим свойством, которое вводится в представление после его загрузки. –
Попробуйте это в вашей форме, @ Html.TextBoxFor (m => m.SearchString, new {id = "query", name = "query"}) И удалить это, новый {query = Model.SearchString из вашего @ Html.BeginForm() I я не уверен, что вы пытаетесь сделать. –