asp.net-mvc-3 – MVC站点地图提供程序 – 在痕迹路径中维护URL参数
发布时间:2020-05-25 09:11:15 所属栏目:asp.Net 来源:互联网
导读:我正在使用 http://mvcsitemap.codeplex.com/的MvcSiteMapProvider为我的项目创建面包屑跟踪.我有一些URL需要传递ID来提供相应用户的信息,例如http:// localhost:52306 / Home / User?ID = 101101 当我进一步导航到站点地图(例如http:// localhost:52306
|
我正在使用 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 – 如何在.net 3.5中托管我的MVC3应用程序?
- asp.net-mvc – 适当地url编码空间字符
- 如何在ASP.NET 5中添加一个TypeScript绝对类型的定义?
- asp.net-mvc – 如何提交本地jqgrid数据和表单输入元素
- ASP.NET无法摆脱“500-内部服务器错误”
- ASP.NET – 将网站投入生产的基本清单
- asp.net – C#:GDI:使用位图的保存方法过度写入图像
- ASP.net WebForms – 构造函数与Page_Load
- asp.net – 如何在抛出请求验证异常时显示自定义错误页面?
- asp.net – 从我的GridView行返回一个对象
推荐文章
站长推荐
- asp.net-mvc – 无法加载文件或程序集System.Web
- asp.net-mvc – 将集合传递给EditorFor()时,它会
- 如何在本地运行ASP.NET C#Web应用程序?
- asp.net-mvc – 页面的ValidateRequest设置可以被
- asp.net-mvc – asp.mvc视图在发布配置中引用#IF
- asp.net – InvalidOperationException:在程序集
- ASP.NET MVC默认项目结构和脚本文件夹
- ASP.NET工作进程仍然以31kb的大小返回数据
- asp.net – IIS 7.5和ASP .NET 2.0
- asp.net-web-api – SelfHosted AspNet WebAPI与
热点阅读
