asp.Netcoreはルーティング接続を生成し、パラメータの取得とモデルバインドを要求する方法
1555 ワード
asp.Netcoreでは、ルーティング接続を生成する方法は以下の通りです.
例えばGroupコントローラの下にあるIndexというアクションに対応して書けばいいです
Groupコントローラの下にあるIndexというアクションは、このように書きます
例えば次のグループコントローラのアクション
asp-route-{パラメータ}="」というフォーマットで書きます.
しかし、このように生成されたリンクは、デフォルトのルーティング設定を使用すると次のようになります.
カスタムモデルバインド
元のアクションコードを
例えばGroupコントローラの下にあるIndexというアクションに対応して書けばいいです
トップページ
adminサブ領域の場合Groupコントローラの下にあるIndexというアクションは、このように書きます
トップページ
パラメータを追加する必要がある場合は、注意が必要です.asp.Netcoreはパラメータ付きリンクを生成するのは簡単すぎますが、現在はドキュメントが少なすぎて、使い方が分からない人が多いです.例えば次のグループコントローラのアクション
public async Task GetGroupAuthorizes(string groupId)
groupIdパラメータ付きリンクを生成するには、次のように書きます.
注意、asp-route-{パラメータ}="」というフォーマットで書きます.
しかし、このように生成されたリンクは、デフォルトのルーティング設定を使用すると次のようになります.
http://localhost:5000/Admin/group/GetGroupAuthorizes/?groupId=6448dbf2-b96a-4262-bd1f-f21a8d6c2d7d
リンクをより美しく見せたいなら、例えば次のようにhttp://localhost:5000/Admin/group/GetGroupAuthorizes/6448dbf2-b96a-4262-bd1f-f21a8d6c2d7d
には高度なaspが必要です.Netcore特性、カスタムモデルバインド
元のアクションコードを
public async Task GetGroupAuthorizes([ModelBinder(Name = "id")]string groupId)
そうすると、ActionパラメータgroupIdは、idというパラメータをカスタム設定でバインドし、asp.Netcoreで生成されたリンクはhttp://localhost:5000/Admin/group/GetGroupAuthorizes/6448dbf2-b96a-4262-bd1f-f21a8d6c2d7d