@Lisik

Как передать данные из одного представления в другое?

Я только начинаю изучать asp.net core MVC, и вот появился такой вопрос.
Есть представление Index, где выводятся данные из базы данных в виде таблицы table.
<h2>Список грузов</h2>
<p><a href="/Home/Create">Добавить груз</a></p>
<table class="table">
    <tr>
        <th>Номер груза</th>
        <th>Город отправителя</th>
        <th>Адрес отправителя</th>
        <th>Город получателя</th>
        <th>Адрес получателя</th>
        <th>Вес груза</th>
        <th>Дата забора груза</th>
    </tr>
    @foreach (var item in Model)
    {
        <tr onclick="location.href='@Url.Action("ViewOrder", "Home")'">
            <td>@item.Id</td>
            <td>@item.CitySender</td>
            <td>@item.AdressSender</td>
            <td>@item.CityRecipient</td>
            <td>@item.AdressRecipient</td>
            <td>@item.Weight</td>
            <td>@item.Date</td>
        </tr>
    }
</table>


При нажатии на строку таблицы должна открыться форма просмотра, где будут выведены данные из нажатой строки. Подскажите, как передать эти данные?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Url.Action принимает аргумент object? values (последний). В него нужно передать параметры для обработчика MVC контроллера. Передавать в виде анонимного объекта.
Для твоего случая это будет в виде:
@foreach (var item in Model)
    {
        <tr onclick="location.href='@Url.Action("ViewOrder", "Home", new { id = item.Id })'">
            <td>@item.Id</td>
            <td>@item.CitySender</td>
            <td>@item.AdressSender</td>
            <td>@item.CityRecipient</td>
            <td>@item.AdressRecipient</td>
            <td>@item.Weight</td>
            <td>@item.Date</td>
        </tr>
    }

Этот item.Id будет передаваться параметром в обработчик контроллера через параметр, который называется id.
Например, в этотpublic IActionResult ViewOrder(int id)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы