#entity-framework #asp.net-core #razor #asp.net-core-mvc
#entity-framework #asp.net-core #razor #asp.net-core-mvc
Вопрос:
У меня есть этот контроллер, который создает список, где T — модель класса, называемая GamingEvents.
public async Task<IActionResult> Index(DateTime start, DateTime end)
{
List<GamingEvents> gamingEventsListings = await sg.GenerateGameEventsSchedule();
ViewData["RangeStart"] = start;
ViewData["RangeEnd"] = end;
return View(gamingEventsListings);
}
На мой взгляд, я создаю эту таблицу для отображения данных:
@model List<GameManager.Models.GamingEvents>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.GameId)
</td>
<td>
@Html.DisplayFor(modelItem => item.GameName)
</td>
<td>
@Html.DisplayFor(modelItem => item.DayNames)
</td>
</tr>
}
Теперь я хочу отправить все эти данные на другой контроллер. Итак, я создал эту форму:
<form asp-controller="Scheduling" asp-action="ScheduleBlock" method="post">
<fieldset>
<button formaction="/Scheduling/ScheduleBlock/">Schedule Games</button>
</fieldset>
</form>
Итак, мне нужен метод GenerateGameEventsFromSchedule(), чтобы принять два свойства данных, которые я передаю представлению, ViewData [«RangeStart»] и ViewData [«RangeEnd»].
Итак, я начал писать контроллер:
[HttpPost]
public async Task<IActionResult> GenerateGameEventsFromSchedule(DateTime start, DateTime end)
{
foreach (event in GamingEvents)
{
//...do this
}
return View();
}
Очевидно, что это не закончено.
Моя проблема в том, как мне передать список игровых событий из моего представления выше на этот новый контроллер, чтобы я мог выполнить дополнительную обработку для каждого элемента в списке?
Спасибо!
Комментарии:
1. Вы этого не делаете. Вы снова запрашиваете их из базы данных.
2. @ChrisPratt как насчет передачи двух значений даты, которые я записываю в представлении следующим образом: @ViewData[«RangeStart»] и @ViewData [«RangeEnd»]? а затем передать их новому контроллеру? Спасибо!
3. Ну, эти значения поступают откуда -то. Если они жестко запрограммированы, то просто используйте те же жестко запрограммированные значения. Если они поступают из запроса, то вы должны передать их таким же образом (т. Е. Просто добавить их в качестве параметров к ссылке, которую вы создаете на странице). Если они были заданы пользователем при отправке формы, вы можете передать их в URL ссылки или вы могли бы сохранить их в
Session
. Это действительно зависит от того, что именно вы делаете.4. @ChrisPratt Ну, я создал первое представление, чтобы менеджер игры мог посмотреть сгенерированное расписание, а затем решить, хотят ли они на самом деле запланировать его … если они это сделают, то они нажимают на ссылку, и она отображает то, что они видят на экране.
5. Если в результате перехода по ссылке произойдет что-то атомарное, это не должно быть ссылкой . Вам нужно опубликовать форму. Запросы GET должны быть идемпотентными (т. Е. вы можете вызывать их 100 раз, и состояние системы будет точно таким же, как при запуске).