1

在用户管理中,有 4 个页面:ListCreateDetailsEdit。所有 4 个页面都呈现部分ListPartial。这是我用来加载 ListPartial 的 Ajax 脚本:

<script type="text/javascript">
    $(function () {
        $('.leftContainer').load('ListPartial');
    });
</script>

ListCreate可以正常工作,但DetailsEdit不能。而且我已经找到了通过使用 URL“ User/Details?id=1 ”而不是普通的“ User/Details/1 ”来使其工作的方法。我怎样才能使它与正常的 url 一起正常工作?

编辑:

ListPartial.cshtml(链接直接指向用户详细信息页面和 4 个视图ListCreateDetailsEdit使用 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
    );
}
4

1 回答 1

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 })
于 2012-07-21T06:56:27.020 回答