在用户管理中,有4个页面:列表,创建,详细信息和修改。所有4个页面都呈现部分 ListPartial 。 这是我用来加载ListPartial的Ajax脚本:
<script type="text/javascript">
$(function () {
$('.leftContainer').load('ListPartial');
});
</script>
列表和创建正常工作,但详细信息和编辑则不能。我已经找到了通过使用网址“用户/详细信息?id = 1 ”而不是正常的“用户/详细信息/ 1 ”来使其工作的方法。如何使用普通网址正常工作?
编辑:
ListPartial.cshtml(链接指向用户详细信息页面和4个视图列表,创建,详细信息和编辑< / strong>使用Ajax加载它)
@model IEnumerable<ARS.Models.User>
<div class="leftToolbar">
@using (Html.BeginForm("Create", "User"))
{
<button name="button" class="btnAdd" value="Create"></button>
<input id="Text1" type="text" class="txtSearch" />
}
</div>
<div class="smallList">
<table>
<tr>
<th>
Email đăng nhập
</th>
<th>
Nhóm
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.ActionLink(Html.DisplayFor(modelItem => item.Email).ToString(), "Details", new { id=item.ID })
</td>
<td>
@Html.DisplayFor(modelItem => item.Group.Name)
</td>
</tr>
}
</table>
</div>
UserController中/细节
public ViewResult Details(int id)
{
User user = db.Users.Find(id);
return View(user);
}
Global.asax中
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults
);
}
答案 0 :(得分:0)
在控制器
中// GET: /User/Edit/5
public ActionResult Edit(int id)
{
//code..
}
// GET: /User/Details/5
public ViewResult Details(int id)
{
//code..
}
在cshtml页面
@Html.ActionLink("Edit", "Edit", new { id=item.UserId}) |
@Html.ActionLink("Details", "Details", new { id = item.UserId })