0

我有一个路由配置文件,我试图路由遵循公式.com/{a page}/{子页面}的所有URL,以路由到特定页面.com /默认/ Page.aspx。我的问题是,它为所有页面(即,.com/Account/Login.aspx)都这样做。是否有一种方法可以指定我希望它只有在用户将其输入地址栏时才能发送到该页面?只有当他们离开了.aspx扩展这是我到目前为止有:ASP.NET路由所有页面

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.AspNet.Membership.OpenAuth; 
using System.Web.Routing; 
using Microsoft.AspNet.FriendlyUrls; 

namespace CouponsForGiving 
{ 
    public static class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.Ignore("{resource}.axd/{*pathInfo}"); 
      routes.MapPageRoute("LearnMore", "LearnMore", "~/LearnMore.aspx"); 
      routes.MapPageRoute("DefaultPage", "{nponame}", "~/Default/NPOPage.aspx"); 
      routes.MapPageRoute("CampaignPage", "{nponame}/{campaignname}", "~/Default/CampaignPage.aspx"); //This one routes a lot of other pages 
      routes.EnableFriendlyUrls(); 
     } 
    } 
} 

感谢这里

回答

0

问题与路由的首要如果有2种途径与相同数量的!参数,如果没有硬编码值,则会始终考虑声明的第一个路由。例如,如果注册了以下2个路由,则

routeCollection.MapPageRoute("LearnMore", "{param1}/{param2}", "~/About.aspx"); 
routeCollection.MapPageRoute("DefaultPage", "{param3}/{param4}", "~/Account/Login.aspx"); 

在上面的例子中,LearnMore路由只会被视为有效的请求About.aspx页面。

你可以这样做如下:

routeCollection.MapPageRoute("LearnMore", "learnmore/{param1}/{param2}", "~/About.aspx"); 
routeCollection.MapPageRoute("DefaultPage", "default/{param3}/{param4}", "~/Account/Login.aspx"); 

这将重定向到相应的页面。有关URL路由的更多详细信息,您可以浏览以下URL。

http://karmic-development.blogspot.in/2013/10/url-routing-in-aspnet-web-forms-part-2.html

感谢&问候, Munjal

+0

好了,但我的问题是,当我点击我的网站的链接,比如一个登录真实重定向。 – Jack

+0

老兄,你能不能请精心处理你的问题?我在上述评论中没有得到你的观点。 –