2017-08-29 9 views
0

私はAsp .Netコア1のルーティングと混同しており、助けが必要です。 startup.csで 私は、コントローラのエンティティ 'とメソッドを作成しているこの構成Aspネットコアはルーティングと混同しています

 app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}");  
     }); 

を持っている以下の

を働くように私は、URLリンク内のテキストと、そう

[Authorize] 
public class EntitiesController : Controller 
{      
    [Produces("text/html")] 
    public string Get(string entity, string type) 
    {    
     return "<html><body>test</body></html>"; 
    } 

} 

」を取得]

http://localhost:12895/Entities/Get?entity=entity&type=type

とparamsで呼び出される関数。

しかし、私はこのURLを変更して同じ機能を維持したいと思います。 私は私のURLがそう http://localhost:12895/Entities/entity?type=type

になる、唯一の「タイプ」は、パラメータになると「実体」の名前は、例えば http://localhost:12895/Entities/human?type=type

http://localhost:12895/Entities/dog?type=type

を変更するが、同じ関数を呼び出します。欲しいです

これは可能ですか?

答えて

1

There'sフルインフォメーションについて.netコアルーティング。

はい。可能です。クラスの追加ルートをapp.UseMvcに追加してください。ルートの

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "default", 
     template: "{controller=Home}/{action=Index}/{id?}" 
    );  


    routes.MapRoute(
     name: "entities", 
     template: "Entities/{entity}", 
     defaults: new { controller = "Entities", action = "Get"} 
    ); 
}); 
+1

注文は、第1試合の勝利として重要であるようにそれが必要

が見えます。既定のルートもエンティティルートと一致しますので、デフォルトルートの前にエンティティルートを配置する必要があります。より具体的で、デフォルトルート – Nkosi

+0

okと同じように一般的ではありません。 (エンティティ== null) 新しい例外(String.Format( "名前{0}のエンティティは指定されていません"エンティティ))をスローします。今、エンティティの名前はどのようにできますか? – GomuGomuNoRocket

+0

私は 'テンプレート: "エンティティ/ {エンティティ}"、' ok ty dude – GomuGomuNoRocket

関連する問題