Индексный метод не принимает параметры в ASP. NET Core MVC с Entity Framework - PullRequest
1 голос
/ 22 марта 2020

Я работаю над веб-страницей, где мне нужно отфильтровать результаты, используя значение из выбранной опции меню выбора, когда пользователь нажимает кнопку фильтра, отправляя параметр get в метод индекса.

Ответы [ 2 ]

1 голос
/ 26 марта 2020

refId никогда не передается в метод Index

В вашем коде мы можем найти, что вы указываете asp-for="@Model.FirstOrDefault().RefereeId" для своего тега <select>, если вы отметите Исходный код этого выпадающего в браузере, вы найдете name атрибут значение RefereeId (не refId), как показано ниже. Таким образом, оно будет передавать что-то вроде RefereeId=168 через строку запроса в ваше действие, а параметр refId вашего действия всегда будет равен 0, что вызывает проблему.

enter image description here

Чтобы исправить это, вы можете попробовать переименовать ваш параметр действия в RefereeId, как показано ниже.

public async Task<IActionResult> Index(int RefereeId)
{
    //code logic here

Или изменить код страницы просмотра, чтобы задать имя тега <select> с помощью "* 1028". * refId".

<select name="refId" asp-items="@ViewBag.PersonId"></select>
0 голосов
/ 22 марта 2020

Если у вас не определен пользовательский маршрут, для маршрутизации по умолчанию в asp. net core используется id.

Заменить параметр refId на id.

public async Task<IActionResult> Index(int id)
{
    // ...

    if (id != 0) //always remains 0
    {
        games = games.Where(g => g.RefereeId == id);
    }

    // ...
}
...