Я начал работать с MVC с нескольких дней и получил вопрос из изучения множества способов общения между контроллерами и представлениями в MVCКак передать значение из кнопки отправки в mvc динамически?
У меня есть страница, показывающая список сотрудников в табличной форме.
Модель типа IEnumerable
из Employee Model
Он имеет три кнопки, они являются Edit
, Create
, Delete
, Details
.
Требование:
я использовал кнопки, так что все должно быть HTTP Post типа запроса, потому что я не хочу, чтобы пользователи непосредственно к ним доступ с помощью запросов URL.
Вот мой взгляд код:
@using (Html.BeginForm())
{
<p>
<input type="submit" name="CreateView" value="Create New(Post)" formaction="CreateView" formmethod="post" />
</p>
<table class="table">
<tr>
-------Headings of table-------
</tr>
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeName)</td>
<td>@Html.DisplayFor(modelItem => item.EmployeeGender)</td>
<td>@Html.DisplayFor(modelItem => item.EmployeeCity)</td>
<td>@Html.DisplayFor(modelItem => item.DepartmentId)</td>
<td>@Html.DisplayFor(modelItem => item.EmployeeDateOfBirth)</td>
<td>
<input type="submit" name="EditView" value="Edit(Post)" formaction="Edit" formmethod="post" /> |
<input type="submit" name="DetailsView" value="Details(Post)" formaction="Details" formmethod="post" /> |
<input type="submit" value="Delete(Post)" onclick="return confirm('Are you sure you want to delete record with EmployeeId = @item.EmployeeId')" />
</td>
</tr>
}
</table>
}
Здесь удалить кнопка работает, потому что я не нужен идентификатор сотрудника. Но для других действий, таких как редактирование, удаление и просмотр деталей, мне нужно передать идентификатор сотрудников контроллеру. Но как передать идентификатор контроллеру с помощью кнопки отправки.
В ПОЛУЧИТЬ типы запросов я использовал, чтобы передать так:
@Html.ActionLink("Details", "Details", new { id = item.EmployeeId })
Для одного кнопки отправки я передать данные как этого
@using (Html.BeginForm("Details", "BusinessLayer", FormMethod.Post, new { id = item.EmployeeId }))
Может ли один скажи мне подход, который я могу пар для этого?
Несколько предложений в одной форме могут быть плохой идеей. вы можете использовать кнопку вместо этого, и с помощью javascript вы можете отправить его. –
@PrashantMohite, OP хочет перенаправить, так что ajax не будет работать. –
Просто создайте форму для каждого действия и каждого элемента в коллекции - '@ Html.BeginForm (" Изменить "," yourControllerName, new {id = item.EmployeeId})) {}' и т. д. –