我开始几天MVC工作,有一个问题出学习的途径很多在MVC如何动态地将提交按钮的值传递给mvc?
我有以表格形式显示员工列表页控制器和视图之间进行通信的。
模型是Employee Model
IEnumerable
类型的,具有三个按钮它们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>
}
这里删除按钮作品,因为我并不需要的员工的ID。 但对于编辑,删除和详细信息查看等其他操作,我需要将员工ID传递给控制器。但是,如何使用提交按钮将ID传递给控制器。
在GET请求类型我用来传递这样的:
@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(”Edit“,”yourControllerName,new {id = item.EmployeeId})){}'等 –