2012-03-08 3 views
0

Tout d'abord, désolé de mon mauvais anglais. Je ne comprends pas pourquoi ma page ne se rafraîchit pas lorsque je clique sur l'utilisateur de suppression ... Après le clic je vérifie la base de données et l'utilisateur est supprimer mais ma page avec la table ne rafraîchit pas, je ne comprends pas.pourquoi ajax.actionlink ne rafraîchit pas la page?

Mes vues est:

@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> 

Mon contrôleur est:

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); 
     } 
    } 

Je ne comprends pas pourquoi il ne fonctionne pas, merci pour votre aide!

+0

C'est du travail! merci pour votre aide – Zoners

Répondre

1

UpdateTargetId = "deleteUser" signifie d'actualiser un élément DOM avec id="deleteUser". Vous n'avez pas cet élément.

Vous avez:

<div class="deleteUser"> 

qui n'est pas la même chose que:

<div id="deleteUser"> 

Alors assimile la classe avec identifiant et votre table devrait normalement rafraîchir.

Questions connexes