欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.net MVC定义短网址的方法

程序员文章站 2023-11-05 22:00:58
在mvc的逻辑代码里,controller和action是必须的,但是在网址里,并不需要完全体现controller和action。比如我们经常希望看到http://loc...

在mvc的逻辑代码里,controller和action是必须的,但是在网址里,并不需要完全体现controller和action。比如我们经常希望看到http://localhost/about而不是http://localhost/home/about。

默认的路由规则

新建mvc应用程序后,global.asax里默认注册的路由规则是:

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
);
}

我们可以定义自己的路由规则。

定义短网址

我们定义一个可以用http://localhost/about等同于http://localhost/home/about的路由规则:

routes.maproute(
"shortabout",
"about",
new { controller = "home", action="about" }
);

此时访问http://localhost/about和http://localhost/home/about是一样的。

以上语句只定义了一个短网址,为了普遍性,可以这样定义路由规则:

routes.maproute(
"actiononly", 
"{action}/{id}", 
new { controller = "home", action = "about", id = urlparameter.optional }
);

为了减少对其他controller下默认action(url无action)的影响,可对action作限制:

routes.maproute(
"actiononly", 
"{action}/{id}", 
new { controller = "home", action = "index", id = urlparameter.optional }, 
new { action = "about|index" }
);

以上所述是小编给大家介绍的asp.net mvc定义短网址的方法,希望对大家有所帮助