MVCアプリケーションで作業していて、Url.Link
関数を使用して作業URLを構築しようとしています。それは、IDという名前のパラメータを受け入れる - (関数の名前は管理されRouteConfig.csurl.link error:ルートコレクションで「Default」という名前のルートが見つかりませんでした。パラメータ名:名前
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
私はコントローラに到達しようとしているルートで
:
は、ここではいくつかの関連するコードですそれはタイプのGUIDは次のとおりです。Url.Link()
へ
[HttpGet]
[Route("manage/{id:guid}")]
コール:
Url.Link("Default", new { Controller = "Users", Action = "Manage", id = aggregateId });
私は、次のような属性を命名しようとしている:
[HttpGet]
[Route("manage/{id:guid}", Name="ManageUserRoute")]
は、このようなUrl.Link()
を呼び出す:
url = Url.Link("ManageUserRoute", new { id = aggregateId });
私は両方の方法を使用してタイトルに同じエラーを取得します。これを修正するにはどうすればよいですか?
はのActionResultが '' UsersController'に、あなたは 'Url.Link( "デフォルト" のような規則ベースのルーティングを経由してリンクを構築(GUID ID)を管理する'で欲しいです、新しい{controller = "Users"、アクション= "Manage"、id = aggregateId}); '。 * 'controller'と' action' *の共通名に注意してください。あなたの例では、属性ルーティングとコンベンションベースルーティングの両方を混在させています。 – Nkosi