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 – asp.net mvc使用.wml保持覆盖text/html内容
- asp.net-core – 如何使用ASP.NET注册OData 5
- asp.net – 如何在web.config中增加执行sql查询的时间
- asp.net gridview:如何在一列中包含多个按钮字段?
- ASP.Net MVC JQuery在IE8中未定义,但在Chrome中没问题
- asp.net-mvc – ASP.NET MVC3 IIS无法获取加载样式表
- asp.net-mvc – 使用URL重写时Url.Action不正确
- asp.net – Response.TrySkipIisCustomErrors不工作
- asp.net-mvc – 使用自己的HtmlHelper扩展名用于模型绑定的
- ASP.NET 5未在开发模式下运行
