我是MVC
的新手。
在MSDN上我已经研究过view
中应该有controller
同名的文件夹。对于Action Method
中的每个controller
,我们必须在同一文件夹中创建View
。
我正在创建一个测试应用程序,其中包含:
我有homeController
Index ActionMethod
。与之对应我在View
中有View/home/Index
,只显示员工的列表。
我知道我可以在[HTTP POST] Index ActionMethod
中添加homeController
。
但我想在视图中添加Delete
和Search
功能。这样用户就可以使用该名称搜索员工,并可以删除同一页面上的员工。
我不知道如何才能推进此功能。
我仍在使用此代码。
homeController
public ActionResult Index()
{
ViewBag.text = "Records Listing";
var q = from p in objEmp.tbemployees select p;
return View(q);
}
Index.cshtml
@model IEnumerable<MvcApplication6.Models.tbemployee>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>@ViewBag.text</h1>
<table style="font-size:15px;">
<tr>
<th>
Name
</th>
<th>
Address
</th>
<th>
Sallary
</th>
</tr>
@foreach (var item in Model)
{
<tr >
<td style="padding:7px;">
@Html.DisplayFor(mm => item.ename)
</td>
<td style="padding:7px;">
@Html.DisplayFor(mm => item.eadd)
</td>
<td style="padding:7px;">
@Html.DisplayFor(mm => item.esal)
</td>
<td style="padding:7px; color:Blue; text-decoration:underline;">
@Html.ActionLink("Edit", "Edit", new { id = item.empno })
</td>
</tr>
}
</table>
感谢。
答案 0 :(得分:1)
对于删除,您可以在表中添加一个将调用控制器操作的列,并将其传递给当前记录ID:
<tr>
<td style="padding:7px;">
@Html.DisplayFor(mm => item.ename)
</td>
<td style="padding:7px;">
@Html.DisplayFor(mm => item.eadd)
</td>
<td style="padding:7px;">
@Html.DisplayFor(mm => item.esal)
</td>
<td style="padding:7px; color:Blue; text-decoration:underline;">
@Html.ActionLink("Delete", "Delete", new { id = item.empno })
@Html.ActionLink("Edit", "Edit", new { id = item.empno })
</td>
</tr>
和您的删除操作:
public ActionResult Delete(int id)
{
... use the passed id to delete the record from the database
return RedirectToAction("Index");
}
对于编辑功能,您可以使用控制器操作来获取记录并呈现允许编辑的视图:
public ActionResult Edit(int id)
{
var employee = objEmp.tbemployees.FirstOrDefault(x => x.Id == id);
if (employee == null)
{
// no employee with the specified id was found
return new HttpNotFound();
}
return View(employee);
}
然后您可以拥有相应的~/Views/Home/Edit.cshtml
视图:
@model Employee
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(x => x.ename)
@Html.EditorFor(x => x.ename)
</div>
<div>
@Html.LabelFor(x => x.eadd)
@Html.EditorFor(x => x.eadd)
</div>
...
<button type="submit">Save</button>
}
当然还有提交此表单时更新记录的相应操作:
[HttpPost]
public ActionResult Edit(Employee employee)
{
... update the employee record
return RedirectToAction("Index");
}
答案 1 :(得分:0)
您可以在控制器中添加并实施Delete
操作方法。然后在您的视图中,请致电@Html.ActionLink("Delete", "Delete", new { id = item.empno })
。这将返回一个链接到控制器中Delete
方法的超链接。