2010-06-16 49 views
1

我正確地將控制器的操作名稱傳遞給分頁類,然後使用選擇列表我想重定向到該操作。此時它會追加到當前url.i想要正確的方式重定向到控制器操作manageUser使用下面的選擇列表asp.net mvc選擇更改重定向到操作

Model.COntroller中應該有什麼。 ControllerName/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); 
    } 

回答

7

我可能會將select的值設置爲要重定向到的url。這樣,您仍然可以使用內置的幫助程序來生成您的網址。像這樣的東西:

<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

Works很好很好 – maztt 2010-06-16 08:33:18