2010-06-16 5 views
1

Je passe correctement le nom de l'action du contrôleur à la classe de pagination et puis en utilisant la liste de sélection que je veux rediriger vers cette action. à ce moment il est ajouté à l'URL actuelle.je veux la bonne façon de rediriger vers l'action controllerUtilisateur en utilisant la liste de sélection ci-dessousasp.net mvc select change rediriger vers Action

Que devrions-nous avoir ici dans Model.COntroller. ControllerName/ActionName/ou juste ActionName

<select id="paging" onchange="location.href='<%= Model.Controller %>'+this.value"> 

    <% for (int i = 1; i <= Model.TotalPages; i++) 
     { %> 
     <option id=<%=i %>><%=i %></option> 
    <% } %> 
    </select> 


public class PaginatedList<T> : List<T> 
{ 

    public string Controller { get; private set; } 

    public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize,string Cont) 
    { 
     Controller = Cont;     // here is the controller 

    } 
    } 

Controller 
    public ActionResult ManageUser(int? page) 
    { 
     const int pageSize = 5; 
     var AllUser = UserRepository.GetAllUser(); 
     var paginatedUsers = new PaginatedList<Users>(AllUser, page ?? 1, pageSize,"ManageUser/Page/"); 

     return View(paginatedUsers); 
    } 

Répondre

7

je serais probablement définir la valeur de la sélection à l'URL que vous souhaitez rediriger vers. De cette façon, vous pouvez toujours utiliser les aides intégrées pour générer vos URL. Quelque chose comme ceci:

<select id="paging" onchange="location.href=this.value"> 
<% for (int i = 1; i <= Model.TotalPages; i++) 
    { %> 
    <option value="<%=Url.Action("ActionName", "ControllerName", new { page = i })%>"><%=i %></option> 
<% } %> 
</select> 
+0

Fonctionne merveilleusement bien – maztt

Questions connexes