Согласно вашему новому примеру, вот лучший ответ, который я могу себе представить. Сначала в вашем примере кода есть несколько синтаксических ошибок, и мне нужно было создать собственный macaddress -class . Я надеюсь, что он похож на ваш.
Я использовал тот же пример, что и в моем предыдущем ответе. Я только изменил представление и создал maccaddress -class. Контроллер такой же, как и раньше.
Модифицированный вид
Это важная часть. Я думаю, что вы только что отформатировали HTML-форму и таблицы странным образом. Вот скриншот того, как отображается представление.
![Rendered view example](https://i.stack.imgur.com/u87kT.png)
Теперь, когда пользователь нажимает Одобрить или Не утвердить форма отправит идентификатор maccaddress и значение кнопки в контроллер IndexPost -action.
В примере просмотра:
- таблица сделана только для примера, измените ее при необходимости.
- Я изменил foreach местоположение, теперь оно до Html.BeginForm . В вашем примере BeginForm находился вне foreach , и это вызвало несколько проблем при отправке вашего кода. В способе отображения вашей формы невозможно было узнать, какой идентификатор отправлен.
- Look @Html.Hidden ("id", item.idMACAddress) . Должно быть внутри BeginForm .
- У меня есть только идентификатор и статус печати в таблицу для примера.
- Кнопки действий находятся в третьем столбце.
Итак, почему это работает сейчас, это способ отображения формы. В этом примере теперь есть одна HTML-форма для каждой строки мак-адреса. При нажатии кнопки мы точно знаем, какие значения мы хотим отправить в контроллер.
@model IEnumerable<MySQL_MACAddress.Models.macaddress>
@{ ViewBag.Title = "Index"; }
<table class="table">
<tr>
<th> MAC Address </th>
<th> Status </th>
<th> Actions </th>
</tr>
@foreach (var item in Model)
{
using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.Hidden("id", item.idMACAddress)
<tr>
<td> @item.idMACAddress </td>
<td> @item.Status </td>
<td>
<button type="submit" name="SubmitButton" value="Approve" class="btn btn-sm btn-success">Approve</button>
<button type="submit" name="SubmitButton" value="Unapprove" class="btn btn-sm btn-danger">Unapprove</button>
</td>
</tr>
}
}
</table>
maccaddress.cs пример
Проверьте этот пример. Не просто скопируйте его, потому что, вероятно, он не будет работать с вашим кодом. Представление является более важной частью здесь, так что смотрите его.
using System;
namespace MySQL_MACAddress.Models
{
public class macaddress
{
public macaddress()
{
}
public string Status { get; set; }
public int idMACAddress { get; set; }
}
}
Контроллер
Проверьте предыдущий ответ.