Модель возврата ASP.NET MVC из представления в метод действия

Я рассматривал другие подобные вопросы, но я не могу найти способ заставить это работать. Мое представление передается в список объектов tAdminAlert, которые я перечисляю в таблице. Я хочу кнопку «Удалить» рядом с каждой строкой в ​​таблице, которая перенаправляет на метод действия «Удалить (tAdminAlert obj)» в моем контроллере и передает объект, соответствующий строке, которую они щелкнули.

Мой контроллер называется AdminAlerts и имеет следующий метод действия:

public ActionResult Delete(tAdminAlerts obj) {

  // Want to call delete method on obj here

  return View("Index");
}

мой вид выглядит так


@model List<tAdminAlerts>
@{
    ViewData["Title"] = "Alerts";
}

@{
    ViewBag.Title = "Alerts";
}

<div style = "width:60%;display:table">
    <table>
        <thead>
            <tr>
                <th>Full Name</th>
                <th>Email</th>
                <th>Dept. Number</th>
                <th>Dept. Code</th>
            </tr>
        </thead>

        <tbody>
            @foreach (var obj in Model) {
            <tr>
                <td width = "35%">
                    @obj.nameFull
                </td>
                <td width = "25%">
                    @obj.emailAddress
                </td>
                <td width = "20%">
                    @obj.departmentNumber
                </td>
                <td width = "20%">
                    @obj.departmentCode
                </td>
                <td>
                 * Want delete button to go here and return @obj 
                   to Delete action method of controller *
                </td>
            </tr>
            }
        </tbody>
    </table> 
</div>

Буду признателен за любую помощь в этом. Спасибо!


25
1

Ответ:

Решено

Здесь вам не нужен весь объект:

public ActionResult Delete(tAdminAlerts obj)

Вам просто нужно идентификатор для удаляемой записи, которую вы затем использовали бы для удаления этой записи в данных:

public ActionResult Delete(int id)

Затем вы можете просто создать простую ссылку на это действие. Различные версии ASP.NET MVC могут иметь небольшие различия, но в целом вы можете создать Ссылка на действие с текстом ссылки, именем действия, (необязательно) именем контроллера и значениями маршрута. Например:

@Html.ActionLink("Delete", "Delete", new { id = obj.id })

(Я предполагаю, что идентификатор obj в представлении называется id, используйте любой идентификатор, который вы хотите использовать.)

Это просто создаст простую ссылку, по которой пользователь может щелкнуть, чтобы перейти к этому Delete действию.