11

私は両方が使用されているのを見たので、彼らは同じことをするのか、それとも異なることをするのだろうか?後者の場合、違いは何ですか?

Visual Studio MVC 4(rc)Web APIテンプレートを見て自分で答えてみましたが、残念ながら両方を使用しているため、混乱が残ります。テンプレートに含まれるものは次のとおりです。

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

        routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

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

1 に答える 1

16

RouteParameterWeb Apiルート(.MapHttpRoute)およびUrlParameter標準MVCコントローラールート( )に使用し.MapRouteます。ご存知のように、標準のMVCとWeb APIは、アセンブリと名前空間の点で2つの完全に異なるAPIですが、どちらも非常に似ています。たとえば、コンソールアプリケーションでWeb APIをセルフホストできるため、System.Web.Mvcアセンブリへの参照すらありません。もちろんRouteParameter、この場合は使用します。

于 2012-07-26T12:21:08.457 に答える