总的分为
2
大类
:1.
routes.MapRoute 2. routes.Add
总代码:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.Mvc;
using
System.Web.Routing;
namespace
URL
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//
方法一:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new { controller = @"/D+", action = @"/D+" }//
建立约束使controlle和action为非数字
);
routes.MapRoute(
" table ",
"{table}/Details.aspx", //URL
new { controller ="Home",action ="Index" } //
设置默认值
);
routes.MapRoute(
"siaf",
"blog/{Action}/{entry}",
new { }
);
//routes.MapRoute("YueShu", "{reporttype}/{year}/{month}/{day}",
// new { },//
默认值为空
// new { year = @"/d{4}", month = @"/d{2}", day = @"/d{2}" }//
给这条路由添加约束,使 年--4位数,月-2位数,日--2位数
// );
//
方法二:
//routes.Add(new Route(
// "{reporttype}/{year}/{month}/{day}",
// new RouteValueDictionary { { "controller", "Home" }, { "action", "Index" }, { "id", "0" } },//
默认URL值
// new RouteValueDictionary { {"year",@"/d{4}" },{"month",@"/d{2}"},{"day",@"/d{2}"}},//
约束
// new MvcRouteHandler()//
实例化接口
// )
// );
//
方法三:
RouteValueDictionary moren = new RouteValueDictionary { { "controller", "Home" }, { "action", "Index" }, { "id", "0" } };
//
方法四
Route r = new Route( "{reporttype}/{year}/{month}/{day}",new MvcRouteHandler() );
RouteValueDictionary Moren = new RouteValueDictionary { { "controller", "Home" }, { "action", "Index" }, { "id", "0" } };
RouteValueDictionary Yueshu = new RouteValueDictionary { { "year", @"/d{4}" }, { "month", @"/d{2}" }, { "day", @"/d{2}" } };
r.Defaults = Moren;
r.Constraints = Yueshu;
routes.Add( r);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);//
检测路由
RouteTable.Routes.RouteExistingFiles = false;
}
}