新手跟着学Asp.net MVC2-Route

MVC2 框架安装完成以后我们就可以开始我们的 MVC之旅了,呵呵

 

本次学习内容:Route

 

首先 route 的中文意思就是我们常说的“路由”,确实这里也是这个意思,在我们MVC中已经不再使用 XX.aspx 来访问页面了,

所有页面的请求会通过route来解析找到对应的控制器(controller)里面对应的操作(action)来执行的。

 

mvcapplication项目新建完成后,会默认生成一个 route,在 Global.asax.cs 文件中,我们可以看到

 2、{controller}/{action}/{id}:这是 url 解析格式 ,大括号括起来的是需要解析的参数 {controller}是找到对应的 控制器,{action}是控制器里面的对应的方法,

代码
routes.MapRoute(
                
" Default " ,                                               //  Route name
                 " {controller}/{action}/{id} " ,                            //  URL with parameters
                 new  { controller  =   " Home " , action  =   " Index " , id  =   ""  }   //  Parameter defaults
            );

 

routes.MapRoute 方法就是提供给我们映射一个路由的,我们可以看到默认路由的参数和自带的参数解释

1、Default:路由名称

 

 

{id}是默认提供的一个参数名,类似我们以往的 http://xXX.com/abc.aspx?id=XXX 这url里面的id参数

 

这段就是根据URL格式找到控制器和执行哪个action的重点:

http://localhost:12345/Home/Index/2,这里则根据上面的规则解析,找到Home这个controller,并执行home里面的Index 方法,并且方法参数 id的值是2

 

3、new { controller = "Home", action = "Index", id = "" }:是默认的参数,当没有指定{controller}时 默认 "Home"这个控制器,当没有指定 {action}时 默认"Index" 这个执行方法,类似的  id 就是 如果没有指定{id} 则 使用这里的值

 

 

上面就是对默认的一个映射参数的解释也就是默认的一个解析URL格式的配置,呵呵,微软这个功能实在太妙了,这样就把业务逻辑和页面分开了,我们可以通过修改这里的配置,来解析URL执行我们想要执行的业务代码、展示页面。

 

下面我们可以自己定义一个规则来解析我们所需要的url格式 如:

  

代码
routes.MapRoute(
                
" myRoute " ,                                               //  Route name
                 " myRoute/{dt} " ,                            //  URL with parameters
                 new  { controller  =   " MyController " , action  =   " MyAction "  }   //  Parameter defaults
            );

 

 

这里我为新添加的一个 route 起了个名字 叫 "myRoute",

我规定的 url 格式 是 "myRoute/{dt}",刚才上面提到 被大括号括起来的值是参数,而不括起来的则可以看成字符串,后面 dt 是一个参数,这里我没有 在这个规则上写上

{controller} 和 {action}2个参数,这是系统就会找到下面默认提供的参数

"new { controller = "MyController", action = "MyAction" } "  默认控制器 是 "MyController",默认方法是 "MyAction",好,这样我们就添加上了我们自定义规则的路由;

 

下面就是需要添加 MyController 控制器 和 MyAction 方法;

代码如下

 

 

代码
public   class  MyControllerController : Controller
    {
        
//
        
//  GET: /My/

        
public  ActionResult Index()
        {
            
return  View();
        }

        
public  ActionResult MyAction(DateTime dt)
        {
            ContentResult cr 
=   new  ContentResult();
            cr.Content 
=   " MyController's MyAction is Workded! "   +  dt.ToString( " yyyy年MM月dd日 " );
            
return  cr;
        }
    }

 

 

这里可以看到  MyAction 方法里面接收一个 DateTime 类型的 dt,就是我们规则里面的 {dt}这个参数,

启动我们程序后,在地址栏里输入 http://localhost:2235/myRoute/2010-1-10

就可以看到页面输出:

 

 

 

大家是不是感觉route 很爽了,感觉用起来随心所欲嘛,嘿嘿~

 

----前面一段时转载的

这个里面  主要注意

MyController 是跟你的

MyControllerController.cs

的前面 一段时相同的 。。。

而且 这个暂时 是无页面的

直接 输出

偶 是完全新手

记录的也是很肤浅的。。

MyController's MyAction is Workded!2010年01月10日
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值