asp.net-mvc-3 – MVC站点地??图提供程序 – 在痕迹路径中维护UR
发布时间:2020-12-16 04:30:31 所属栏目:asp.Net 来源:网络整理
导读:我正在使用 http://mvcsitemap.codeplex.com/的MvcSiteMapProvider为我的项目创建面包屑跟踪.我有一些URL需要传递ID来提供相应用户的信息,例如http:// localhost:52306 / Home / User?ID = 101101 当我进一步导航到站点地图(例如http:// localhost:5230
我正在使用
http://mvcsitemap.codeplex.com/的MvcSiteMapProvider为我的项目创建面包屑跟踪.我有一些URL需要传递ID来提供相应用户的信息,例如http:// localhost:52306 / Home / User?ID = 101101
当我进一步导航到站点地图(例如http:// localhost:52306 / Home / User / Details?ID = 101101)并尝试使用痕迹导航链接将我带回“用户”页面时,ID参数丢失.我尝试将SiteMapPreserveRouteData属性添加到操作方法中,但它们似乎没有做任何事情.是否有一种简单的方法可以确保保留此ID信息?我认为SiteMapPreserveRouteDataAttribute应该这样做,所以我的属性出错吗?我的方法看起来像这样: [SiteMapPreserveRouteData] public ActionResult User() { //code } 如果您需要我的更多信息,请告诉我. 解决方法
我这样做的方式,我拿了
original mvc site map helper source用于渲染breadcrumb,并将其改为处理参数(虽然在我的项目中我们只显示过滤参数并允许用户点击它们以松开其他过滤参数,下面是非常天真的节点实现文字,只是一个例子,它是如何做到的):
private static string SiteMapText(this MvcSiteMapHtmlHelper helper,SiteMapNode node,string linkCssClass,IDictionary<string,object> htmlAttributes) { var extraAttributes = new StringBuilder(); foreach (var attribute in htmlAttributes) { extraAttributes.Append(" " + attribute.Key + "="" + attribute.Value + """); } string spanHtml; var paramDictionary = helper.HtmlHelper.ViewContext.RequestContext.HttpContext.Request.Params.ToDictionary(); var queryParams = paramDictionary.Select(x => string.Format("{0}:{1}",x.Key,x.Value)); // here you add request parameters var title = helper.HtmlHelper.Encode(string.Format("{0} ({1})",node.Title,string.Join(";",queryParams))); if (!string.IsNullOrEmpty(linkCssClass)) { spanHtml = string.Format("<span><span class="{0}"{1}>{2}</span>",linkCssClass,extraAttributes,title); } else { spanHtml = string.Format("<span><span{1}>{0}</span>",title,extraAttributes); } return spanHtml; } 以同样的方式,您可以调整SiteMapLink方法,以包括当前节点的请求参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET自定义404和500错误页面
- asp.net – 任何人都有解决Internet上的“n项剩余”问题的想
- 每个“HttpRequest”在ASP.NET中都有自己的线程吗?
- asp.net – HttpContext如何在.NET中运行
- asp.net – 为什么几次调用HttpApplication构造函数
- asp.net – 如何从View中获取asp:CheckBox? (__ControlsR
- asp.net – 如何从javascript调用Web服务方法?
- asp.net-4.0 – 我可以强制asp设置与id相同的名称
- asp.net-mvc – ‘/’应用程序中的服务器错误:系统找不到指
- asp.net-mvc – ASP.net MVC:在RenderAction中获取“Main-
推荐文章
站长推荐
- WCF,ASP.NET成员资格提供者和认证服务
- asp.net – 在ObjectDataSource更新事件期间取消
- asp.net-mvc – 无Cookie会话和跨站点表单帖子
- asp.net-mvc – ASP MVC ChildActionOnly应该有路
- 使用模块化设计组织良好的ASP.NET应用程序的最佳
- 第17章 ASP.NET MVC实战: 构建NuGet.org网站
- asp.net-core – 在发布ASP.NET Core应用程序时自
- ASP.NET中的应用程序生存期
- asp.net – Response.IsClientConnected如何在幕
- asp.net-mvc-2 – ASP.NET MVC数据注释客户端验证
热点阅读