asp.net-mvc – ASP.Net MVC中的分页和路由
我跟随
Martijn Boland’s ‘Paging with ASP.NET MVC’.虽然有帮助但它提出了一些我不明白的问题.
Martijn说:
这就是他所说的: private string GeneratePageLink(string linkText,int pageNumber) { var pageLinkValueDictionary = new RouteValueDictionary(this.linkWithoutPageValuesDictionary); pageLinkValueDictionary.Add("page",pageNumber); //var virtualPathData = this.viewContext.RouteData.Route.GetVirtualPath(this.viewContext,pageLinkValueDictionary); var virtualPathData = RouteTable.Routes.GetVirtualPath(this.viewContext.RequestContext,pageLinkValueDictionary); if (virtualPathData != null) { string linkFormat = "<a href="{0}">{1}</a>"; return String.Format(linkFormat,virtualPathData.VirtualPath,linkText); } else { return null; } } 这个怎么用?当我使用它时,virtualPathData.VirtualPath只返回一个url,表示路由表中的第一个路由,最后是一个’page’参数,而不是一个代表当前上下文的url. 此外,路由是什么样的将’/ Paging / ViewByCategory?name = Shoes& page = 1’更改为此’/ Categories / Shoes / Page / 1’? 解决方法
我假设你有Paging控制器,这个控制器有ViewByCategory动作.
ViewByCategory看起来像: public ActionResult ViewByCategory(string categoryName,int? page) { .... } 路由看起来像 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "RouteByCategory","Categories/{categoryName}/Page/{page}",new { controller = "Paging",action = "ViewByCategory" } ); routes.MapRoute( "RouteByCategoryFirstPage","Categories/{categoryName}",action = "ViewByCategory",page = 1 } ); routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new { controller = "Home",action = "Index",id = "" } // Parameter defaults ); } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); } GeneratePageLink将以’/ Categories / Shoes / Page / 1’格式返回链接,因为它首先匹配路由表中的路由模式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 比较(密码)属性
- asp.net – 与WebAPI异步时保留HttpContext(中等
- ASP.Net Web API在VS中正确显示但提供HTTP500
- asp.net-web-api – 请求的资源不支持http方法“
- asp.net – 在什么情况下HttpContext.Current.Se
- 我应该为ASP.net创建一个JQuery服务器控件,以便在
- asp.net – 以编程方式将CSS类添加到ListItem
- ASP.NET编译器抱怨MiniProfiler不匹配的框架版本
- asp.net-mvc-3 – MVC EditorFor命名模板的问题
- asp-classic – 如何在asp经典中使用YYYY-MM-DD日