ASP.NET маршрутизация всех страниц
У меня есть файл конфигурации маршрута, который я пытаюсь перенаправить на все URL, которые соответствуют формуле.com/{страница}/{подстраница}, чтобы перенаправить на определенную страницу.com/Default/Page.aspx. Моя проблема заключается в том, что он делает это для всех страниц (например,.com / Account / Login.aspx. Есть ли способ указать, что я хочу, чтобы он направлялся на эту страницу только тогда, когда пользователь вводит его в адресную строку, возможно только когда они пропускают расширение.aspx? Это то, что я имею до сих пор:
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();
}
}
}
Спасибо!
1 ответ
Проблема здесь с переопределением маршрута. Если существует 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
Спасибо и привет, Мунджал