Как выбрать Id из списка SelectList с помощью ядра 3 asp.net? - PullRequest
0 голосов
/ 28 октября 2019

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

Прямо сейчас, независимо от того, какую кнопку я нажимаю, она всегда приводит меня к редактированию. страница первого идентификатора в списке, также в URL-адресе указан каждый идентификатор, подобный этому. / EditRequest? SelectedId = 127 & SelectedId = 128, почему для SelectedId установлены все значения в списке? и как мне передать только один Id из выбранного?

Вот моя модель

    public class MyRequestsViewModel
    {
        public MyRequestsViewModel()
        {
            this.MyRequests = new List<SelectListItem>();
        }
        public List<SelectListItem> MyRequests;
        public int SelectedId { get; set; }
    }

Я перебираю MyRequests и хочу отправить SelectedId на контроллер

    <form method="get" asp-controller="Home" asp-action="EditRequest">
    <table id="SortRequestsTable" class="table table-striped">
        <thead>
            <tr>
                <th>SortID</th>
                <th>SortCriteria</th>
                <th>Edit</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model.MyRequests)
            {
                <tr>
                    <td>@item.Value</td>
                    <td>@item.Text</td>
                    <td>
                        <input asp-for="SelectedId" type="hidden"  value="@item.Value" />
                        <button>@item.Value<span class="sap-icon">&#xe038;</span></button>
                    </td>
                </tr>
            }
        </tbody>
    </table>
</form>

И мой контроллер постоянно говорит, что SelectedId равен 0

public IActionResult EditRequest(MyRequestsViewModel requests)

Я получил его с этим работать. Но я не хочу отображать значение Id в кнопке.

<input asp-for="SelectedId" type="submit" value="@item.Value" /><span class="sap-icon icon-16">&#xe038;</span>

Я также пытался использовать помощник по тегу asp-route-SelectedId, но я не совсем уверен, как это реализовать.

1 Ответ

1 голос
/ 29 октября 2019

Попробуйте код ниже, чтобы выполнить редактирование со страницы индекса.

<a asp-action="Edit" asp-route-id="@item.ID">Edit</a> |

и контроллер для запроса на принятие

// GET: Tickets/Edit/5
public async Task<IActionResult> Edit(int? id)
{
    if (id == null)
    {
        return NotFound();
    }

    var ticket = await _context.Tickets.FindAsync(id);
    if (ticket == null)
    {
        return NotFound();
    }            
    return View(ticket);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...