none
MVC 4下的问题 RRS feed

  • 问题

  • 在MVC 4下,

     protected void Application_Start()
            {
                 AreaRegistration.RegisterAllAreas();

                 WebApiConfig.Register(GlobalConfiguration.Configuration);

    中,

      AreaRegistration.RegisterAllAreas();

                 WebApiConfig.Register(GlobalConfiguration.Configuration);

    两句代码不明白是什么意思,也运行了官方运示例,从网上也搜索了一下,看不明白其作用目的是什么?

      WebApiConfig.Register(GlobalConfiguration.Configuration);调用如下函数

     public static void Register(HttpConfiguration config)
            {
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }

    这个函数看上去像个路由;为什么还要注册这样一个路由呢?不是已经有如下的注册路由方法了吗?

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

    请高手指点


    大其心,可容天下之物; 虚其心,可受天下之善;

    2013年3月5日 1:28

答案

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

    以上注册的是mvc 的路由

     public static void Register(HttpConfiguration config)
            {
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }

    这里注册的是 restful api 的路由

    • 已标记为答案 lfofiug 2013年3月15日 9:09
    2013年3月5日 7:01
  • 这个内容就比较多了,可以在搜索下,有很多相关的介绍
    • 已标记为答案 lfofiug 2013年3月15日 9:09
    2013年3月5日 8:13

全部回复

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

    以上注册的是mvc 的路由

     public static void Register(HttpConfiguration config)
            {
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }

    这里注册的是 restful api 的路由

    • 已标记为答案 lfofiug 2013年3月15日 9:09
    2013年3月5日 7:01
  • 我没有明白restful api 是做什么的


    大其心,可容天下之物; 虚其心,可受天下之善;

    2013年3月5日 8:01
  • 这个内容就比较多了,可以在搜索下,有很多相关的介绍
    • 已标记为答案 lfofiug 2013年3月15日 9:09
    2013年3月5日 8:13