我正在寻找一种解决方案,允许我为一组页面打印通用URL。 例: 对于页面 - site.com/About/Contact.aspx,site.com/About/WhoWeAre.aspx,site.com/About/Members.aspx等,用户只能在地址栏中看到site.com/About/。 这是可以实现的吗?这个网站不是SEO友好的,要求用户在访问内容之前登录,我也不希望site.com/About/或任何内部页面直接在浏览器上输入时解析到任何页面。如果用户在内部链接上悬停,如果在状态栏上打印真实URL,我也很好。我不认为URL重写或URL路由在这里工作。或者可能是我错过了什么。使用.NET 3.5和C#。 我正在标记sitecore,因为我对基于sitecore的解决方案更感兴趣,我在About树下有不同的节点,我希望用户只能在地址栏中看到upto / About,但我想如果可以在asp.net中完成,我可以找出sitecore部分。
答案 0 :(得分:0)
当然,使用asp.net 4路由引擎。
这将为您提供您想要的内容: http://weblogs.asp.net/dotnetstories/archive/2011/01/03/routing-in-asp-net-4-0-web-forms.aspx
编辑:对于3.5退房: Friendly URLs for ASP.NET
答案 1 :(得分:0)
解决此问题的唯一方法是在地址栏中保留/关闭,即创建客户端代码,根据用户选择切换内容。
答案 2 :(得分:0)
您可以通过加载“关于”页面然后使用回发或使用ajax调用加载任何子页面的内容来实现。
答案 3 :(得分:0)
您还可以在/ About页面上放置iframe,并让导航链接将iframe指向其他页面。
我认为你可以使用target属性来定位iframe,或者使用javascript来更改iframe的src。
答案 4 :(得分:0)
由于您对sitecore感兴趣,我可以告诉您我们如何在最近的sitecore构建中完成自定义URL。
您需要通过扩展当前的LinkProvider.LinkBuilder sitecore类来拥有自定义链接管理器。然后,您需要通过覆盖GetItemUrl和BuidlItemUrl来显示URL以及最后在web.config中添加您想要URL的自定义逻辑,以便使用您的自定义链接管理器。