Это, вероятно, очень прямолинейно, но я не смог найти это в Google, вероятно, потому, что я новичок в Razor, и я не знаю термин для поиска.
Это простая страница с выпадающим списком для команд, и когда вы выбрали команду, она показывает игроков для этой команды.
- ddl с командами связывает нормально
- Таблица с игроками связывает нормально, когда вызывается из OnGetAsyn c ()
- Но когда я пытаюсь сделать это в OnPost (), я получаю результат из базы данных, и список игроков заполняется, а в представлении в foreach l oop Я вижу присваиваемые значения, но браузер не показывает это изменение.
в поле зрения
@foreach (var item in Model.player)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PlayerName)
</td>
<td>
@Html.DisplayFor(modelItem => item.PlayerNumber)
</td>.... etc
в контроллере
public class p2Model : PageModel
{
public List<Models.Player> player { get; set; }
public List<SelectListItem> team { get; set; }
private readonly rd.Models.rdnewContext _context;
public p2Model(rd.Models.rdnewContext context)
{
_context = context;
}
public async Task OnGetAsync()
{
team = await _context.Teams.Select(a =>
new SelectListItem
{
Text = a.TeamName.ToString(),
Value = a.Id.ToString()
}).ToListAsync();
}
[BindProperty]
public string selectedFilter { get; set; }
public async Task OnPost()
{
int teamid = int.Parse(selectedFilter);
//why does this not work?
player = await (from pl in _context.Player where pl.ClubId == teamid select pl).ToListAsync();
}
}