求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

MVC框架教程
MVC框架架构
MVC框架ASP.NET表单
MVC框架-第一个程序
MVC框架-文件夹
MVC框架-模型
MVC框架-控制器
MVC框架-视图
MVC框架-布局
MVC框架-路由引擎
MVC框架-动作过滤器
MVC框架-高级示例
MVC框架-AJAX支持
MVC框架-捆绑
MVC框架-异常处理
 
 

MVC框架 - 路由引擎
821 次浏览
34次  

路由介绍

ASP.NET MVC路由允许使用URLs描述性的用户行为,并更容易被用户理解。与此同时,路由可以用来隐藏其显示给最终用户的数据。例如,在不使用路由的应用程序,用户将显示的URL作为 http://myapplication/Users.aspx?id=1 这将符合所有MyApplication路径内的文件Users.aspx和发送ID为1。一般来说,我们不希望这样的显示文件名给最终的用户。

为了处理MVC的URL,ASP.NET平台使用路由系统,它可以创建想要的网址任何模式,并表示他们在一个清晰,简明的方式。在MVC每个路由包含一个特定的URL模式。这个URL模式相比传入请求的URL,如果URL与此模式匹配,它用于由路由引擎来进一步处理请求。

MVC路由URL格式

要了解MVC路由,请考虑以下地址URL:

http://servername/Products/Phones

另外,在上述的URL,Products是第一段,Phone可表示在下面的格式第二段:

{controller}/{action}

MVC框架自动评估第一段作为控制器名称,第二段作为控制器内的动作。 需要注意的是,如果控制器的名称是ProductsController,只提Prodcuts显示路由的URL。 MVC框架自动理解Controller后缀。

创建一个简单的路由

路由定义在RouteConfig.cs文件,该文件在App_Start项目文件夹内。

这个文件中的代码如下:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id =    UrlParameter.Optional }
            );
        }
    }

当应用程序启动时RegisterRoutes方法被Global.ascx调用。Global.ascx在Application_Start方法中调用MapRoute功能,设置默认的控制器和动作(控制器类中的方法)。

要修改上述默认映射在我们的例子中,修改下面的代码行:

 defaults: new { controller = "Products", action = "Phones", id =    UrlParameter.Optional }  

该设置将选择的ProductsController并调用里面的Phone方法。同样,如果还有其他的方法,如ProductsController内部的Electronics方法,该网址将是:

http://servername/Products/Electronics

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



821 次浏览
34次
 捐助