ASP.NET Core MVCのrouteシンプルルーティング構成
ASP.NET Core MVCのルーティング構成は一般的に2つに分けられ,プロトコルルーティングと特性ルーティングである.2つのルーティングの構成方法について説明します.一:約束ルーティング約束ルーティングはその名の通り、私たちが約束したルーティングルールであり、プログラムは約束に基づいて、対応するcontrollerにアクセスし、まずASPを確立する.NET Core Webプロジェクトは、空のテンプレートを選択し、StartupクラスのConfigureServicesメソッドにMVCサービスを登録します.
次に、コンフィギュア方式でmvcミドルウェアを使用する、ルーティングルール1を追加する.デフォルトのルーティング方法を使用します.
UseMvcWithDefaultRouteメソッドはデフォルトのルーティングであり、逆コンパイルソースは次のようになります.
これにより、そのルーティングルールはデフォルトhome/indexであり、idは空であってもよい.すなわち、urlがlocalhost:222/である場合、彼はデフォルトでhomeControllerのIndexメソッドを探す.もちろんurlがlocalhost:/222/about/meである場合、aboutControllerのMeメソッドにアクセスする.2.カスタムルーティングルールmvcミドルウェアでルーティングルールを定義できます.コードは次のとおりです.
このように、デフォルト値を設定することもできますが、比較的柔軟です.二.プロパティルーティングControllerファイルでattributeプロパティを使用してルーティングを構成できます.例:
上記のコードでは、AboutControllerのrouteコンテンツは「」、すなわちデフォルトアクセスセカンダリコントローラ、actionと同様に、デフォルトを設定しない場合は名前を付けることができます.
これによりurlはlocalhost:222/about/meでこのcontrollerのmeメソッドにアクセスできます.より柔軟な構成は次のとおりです.
このように構成すると、プログラムはurlに基づいて対応するcontrollerとactionを探します.一般的にwebapiはプロパティルーティングで構成されます.注意:2つの構成方法は共存できません.1つしか選択できません.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
次に、コンフィギュア方式でmvcミドルウェアを使用する、ルーティングルール1を追加する.デフォルトのルーティング方法を使用します.
// mvc
//app.UseMvcWithDefaultRoute();
UseMvcWithDefaultRouteメソッドはデフォルトのルーティングであり、逆コンパイルソースは次のようになります.
public static IApplicationBuilder UseMvcWithDefaultRoute(
this IApplicationBuilder app)
{
if (app == null)
throw new ArgumentNullException(nameof (app));
return app.UseMvc((Action) (routes => routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}")));
}
これにより、そのルーティングルールはデフォルトhome/indexであり、idは空であってもよい.すなわち、urlがlocalhost:222/である場合、彼はデフォルトでhomeControllerのIndexメソッドを探す.もちろんurlがlocalhost:/222/about/meである場合、aboutControllerのMeメソッドにアクセスする.2.カスタムルーティングルールmvcミドルウェアでルーティングルールを定義できます.コードは次のとおりです.
app.UseMvc(builder =>
{
//
//Home/Index->HomeController Index(3)
// Home,Index
//builder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}");
});
このように、デフォルト値を設定することもできますが、比較的柔軟です.二.プロパティルーティングControllerファイルでattributeプロパティを使用してルーティングを構成できます.例:
[Route("")]// , Controller
public class AboutController
{
[Route("")]// , action
public string Me()
{
return "mike";
}
[Route("company")]
public string Company()
{
return "no company";
}
}
上記のコードでは、AboutControllerのrouteコンテンツは「」、すなわちデフォルトアクセスセカンダリコントローラ、actionと同様に、デフォルトを設定しない場合は名前を付けることができます.
[Route("about")]// , Controller
public class AboutController
{
[Route("me")]// , action
public string Me()
{
return "mike";
}
[Route("company")]
public string Company()
{
return "no company";
}
}
これによりurlはlocalhost:222/about/meでこのcontrollerのmeメソッドにアクセスできます.より柔軟な構成は次のとおりです.
[Route("[controller]/[action]")]// ,
public class OtherController
{
public string Me()
{
return "zfy";
}
public string Company()
{
return "no company";
}
}
このように構成すると、プログラムはurlに基づいて対応するcontrollerとactionを探します.一般的にwebapiはプロパティルーティングで構成されます.注意:2つの構成方法は共存できません.1つしか選択できません.