Контроллер не получает значения из представления (реализует функцию поиска) на MVC - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь сделать страницу с функцией поиска.Когда вы впервые заходите на страницу, у вас есть только строка поиска.Когда вы вводите что-то в строку поиска и нажимаете кнопку «отправить» или «поиск», я хочу, чтобы значение в поле поиска было отправлено на контроллер в виде строки.Затем это значение можно использовать при возврате модели обратно на страницу.Вот что у меня есть:

Search.cshtml

@{
    ViewBag.Title = "Search";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@ViewBag.PageTitle
<h1>Search All Issues</h1>
<form asp-controller="Report" asp-action="Search" method="get">
<input name="searchstr" id="Search" />
<input type="submit" value="Submit" />
</form>

ReportController.cs

    [HttpGet]
    public ActionResult Search(string test)
    {
        ViewBag.PageTitle = test;
        var report = _context.Reports.ToList();
        return View(report);
    }

Что я здесь не так делаю?Сейчас было бы неплохо, если бы я мог просто заставить этот ViewBag.PageTitle появляться на странице.Если я смогу это сделать, то смогу вернуть модель отчета именно так, как я хочу.

Также несколько дополнительных вопросов.Некоторые из вещей, которые я видел при переполнении стека, имеют рекомендацию сделать Post в контроллере.Если я это сделаю, страница ошибки.Зачем нужен для этого?Интуитивно, для меня более разумно использовать Пост ...

1 Ответ

0 голосов
/ 26 сентября 2018

Оказывается, я был очень близко;Стивен Мюке получил правильный ответ.Мне просто нужно было изменить имя ввода или имя параметра.

Я допустил эту ошибку, рассматривая это с точки зрения C ++ / C, где имена параметров могут быть неактуальными.Однако теперь я вижу, что для ASP.NET MVC необходимо, чтобы имя входа соответствовало имени параметра.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...