我正在从
学习MVChttps://www.youtube.com/watch?v=ItSA19x4RU0&list=PL6n9fhu94yhVm6S8I2xd6nYz2ZORd7X2v
我正在进行基本编辑操作。索引页面显示以下数据..
Emp_id Emp_name Emp_Sal
1 name1 sal1 Edit | Details | Delete
...当我点击编辑..URL显示像
"http://localhost/MvcApplication1/Employee/Edit"`
...但是Accordng to Tutorial它应该像
http://localhost/MvcApplication1/Employee/Edit/01
地图路线
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
到目前为止,我还没有创建Edit ActionMethod。
索引查看代码是:
@model IEnumerable<BusinessLayer.Employee>
@{
ViewBag.Title = "Index";
}
<h2>
Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Emp_id)
</th>
<th>
@Html.DisplayNameFor(model => model.Emp_name)
</th>
<th>
@Html.DisplayNameFor(model => model.Emp_Sal)
</th>
<th>
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Emp_id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Emp_name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Emp_Sal)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>
如果我遗漏了某些内容,请建议
答案 0 :(得分:1)
您的ActionLink
来电未传递正确的路线值。编辑,详细信息和删除操作需要将id
参数作为路由值传递。假设Emp_id
是您要使用的id值,可以按如下方式执行此操作:
@Html.ActionLink("Edit", "Edit", new { id=item.Emp_id }) |
@Html.ActionLink("Details", "Details", new { id=item.Emp_id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Emp_id })
在您的示例中,您对这些值进行了注释,因此它们不会作为路由值传递,因此不会生成正确的路由。
答案 1 :(得分:0)
那是正确的。
@Html.ActionLink("Edit", "Edit", new { id=item.Emp_id }) |
@Html.ActionLink("Details", "Details", new { id=item.Emp_id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Emp_id })
它对我有用。只需删除评论并添加代码
即可