在用户管理中,有 4 个页面:List、Create、Details和Edit。所有 4 个页面都呈现部分ListPartial。这是我用来加载 ListPartial 的 Ajax 脚本:
<script type="text/javascript">
$(function () {
$('.leftContainer').load('ListPartial');
});
</script>
List和Create可以正常工作,但Details和Edit不能。而且我已经找到了通过使用 URL“ User/Details?id=1 ”而不是普通的“ User/Details/1 ”来使其工作的方法。我怎样才能使它与正常的 url 一起正常工作?
编辑:
ListPartial.cshtml(链接直接指向用户详细信息页面和 4 个视图List、Create、Details和Edit使用 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>
用户控制器/详细信息
public ViewResult Details(int id)
{
User user = db.Users.Find(id);
return View(user);
}
全球.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
);
}