2016-07-02 9 views
3

私はAsp.net WebApi/Single Page Applicationを作成しようとしています。私は、ルートが与えられていない場合、私のサーバーにindex.htmlを配布したいと思います。私はそれが通常の "{controller}/{id}"ファッションで指定されているときにコントローラを使用したいと思います。c#:Asp.net WebApi index.htmlへのデフォルトルート

http://localhost:555/index.htmlを使用してインデックスページにアクセスできることに気づきました。 http://localhost:555にアクセスするにはどうすればよいですか?

答えて

5

WebApiConfigファイルにインデックスページのルートを追加するだけです。あなたの方法は次のようになります。

public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      // Attribute routing 
      config.MapHttpAttributeRoutes(); 

      // Route to index.html 
      config.Routes.MapHttpRoute(
       name: "Index", 
       routeTemplate: "{id}.html", 
       defaults: new {id = "index"}); 

      // Default route 
      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
     } 
    } 
1

ソリューションは空DefaultRouteを作成することでした。

// I think this passes control through before trying to use a Controller 
routes.MapHttpRoute(
    "DefaultRoute", ""); 

routes.MapHttpRoute(
    "DefaultAPI", 
    "{controller}/{id}", 
    new { Controller = "Home", Id = RouteParameter.Optional }); 

別の解決策は、私が望んで完全ではありませんが、適切な解決策である「API」と私のWEBAPIを、接頭辞にしました。これはHerman Guzmanの答えに示されていましたが、彼の答えではありません。

// Default route 
config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
関連する問題