почему ajax.actionlink не обновляет страницу? - PullRequest
0 голосов
/ 08 марта 2012

Во-первых, извините за мой плохой английский. Я не понимаю, почему моя страница не обновляется, когда я нажимаю на удалить пользователя ... После щелчка я проверяю базу данных и пользователь удаляется, но моя страница с таблицей не обновляется, я не понимаю.

Мои взгляды:

@model IEnumerable<SiteWebEmpty.Models.User.UserDisplay>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.debug.js")" type="text/javascript"></script>
<h2>Display User</h2>
<div id="deleteUser">
@using (Html.BeginForm())
{
<table class="tabledisplayUser" border="1">
<tr>
<th>Name FirstName</th>
<th>UserName</th>
<th>Roles</th>
<th>Choice</th>
</tr>
<tr>
<th>@Html.Editor("name")</th>
<th>@Html.Editor("username")</th>
<th>@Html.Editor("roles")</th>
<th>@Html.Editor("choice")</th>
</tr>
@foreach (var user in Model)
{

    <tr>  
        <td class="action nameFirstName">@Html.DisplayFor(u => user.NameFirstName)</td>      
        <td class="action userName">@Html.DisplayFor(u => user.UserName)</td>
        @if (user.Roles.Roles.Count.Equals(0))
        {
            <td>Nobody Role</td>
        }
        else
        {
            <td>@Html.DropDownList("Roles", user.Roles.Roles)</td>    
        }
        <td>@Html.ActionLink("Edit", "Edit", new { UserName = user.UserName }) | @Ajax.ActionLink("Delete", "Delete", new { UserName = user.UserName },
           new AjaxOptions()
           {
               HttpMethod = "POST",
               Confirm = "Do you want delete this user?",
               UpdateTargetId = "deleteUser"
           })</td>
     </tr>        
}
</table>
}
</div>

Мой контроллер:

    public ActionResult DisplayUser()
    {
        List<UserDisplay> users=getAllUserInDB();
        GetAllNameFirstNameLDAP(users);
        return View(users);
    }

    public ActionResult Delete(String userName)
    {
        DeleteDB(userName);
        if (!Request.IsAjaxRequest())
            return RedirectToAction("DisplayUser");
        else
        {
            List<UserDisplay> users = getAllUserInDB();
            GetAllNameFirstNameLDAP(users);
            return PartialView("DisplayUser",users);
        }
    }

Я не понимаю, почему это не работает, спасибо за вашу помощь!

1 Ответ

1 голос
/ 08 марта 2012

UpdateTargetId = "deleteUser" означает обновить элемент DOM с помощью id="deleteUser". У вас нет такого элемента.

У вас есть:

<div class="deleteUser">

, что не совпадает с:

<div id="deleteUser">

Поэтому замените класс на id, и ваша таблица должна обновиться нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...