[解決済み] ルート値を含むURL.Action()
2022-03-04 02:41:02
質問
ASP.Net MVC 4のアプリで、Url.Actionヘルパーを以下のように使用しています。
@Url.Action("Information", "Admin")
このページは、管理者プロフィールの新規追加と編集の両方に使用されます。URLは以下の通りです。
Adding a new: http://localhost:4935/Admin/Information
Editing Existing: http://localhost:4935/Admin/Information/5 <==Admin ID
の時は
Editing Existing
のセクションで、新しい管理者を追加したいと考えたら、次のリンクをクリックします。
<a href="@Url.Action("Information", "Admin")">Add an Admin</a>
しかし、問題は、上記のリンクが実際には
http://localhost:4935/Admin/Information/5
. これは、私がそのページで既存の管理者を編集しているときにのみ発生します。それ以外の場所では、以下のように正しくリンクされています。
http://localhost:4935/Admin/Information
これを見た人はいますか?
UPDATE
RouteConfigです。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
解決方法は?
現在のルーティングスキーマに基づいて生成されたmvcの送信URL。
Informationアクションメソッドはidパラメータを必要とし、ルートコレクションは現在要求されているURL(/Admin/Information/5)のidを持っているので、idパラメータは自動的に既存のルートコレクション値から取得されます。
この問題を解決するには、UrlParameter.Optionalを使用する必要があります。
<a href="@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })">Add an Admin</a>
関連
-
[解決済み] データベースに 'AspNetRoles' という名前のオブジェクトがすでに存在します。
-
[解決済み] コントローラ '...' でパブリックアクションメソッド '...' が見つかりませんでした。
-
[解決済み] RedirectToActionでURLが変更されない、またはIndexビューに移動しない
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み] [Solved] Replace line break characters with <br /> in ASP.NET MVC Razor view
-
[解決済み] [Solved] ASP.NET MVCコントローラメソッドからJSON.NETでシリアライズされたcamelCase JSONを返すにはどうすればよいですか?
-
[解決済み】HTTPエラー500.19とエラーコード: 0x80070021
-
[解決済み] ASP.NET MVCにおけるセッション変数
-
[解決済み] アクションリンクでエリア名を指定するには?
-
[解決済み] Entity Frameworkのデータベースを再作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Automapperにタイプマップの設定がない、またはマッピングがサポートされていない - エラー
-
[解決済み] Razor View throwing "The name 'model' does not exist in the current context".
-
[解決済み] コントローラ '...' でパブリックアクションメソッド '...' が見つかりませんでした。
-
[解決済み] Automapper のタイプマップ構成がない、またはサポートされていないマッピング - エラー
-
[解決済み] ASP.NET MVCにおけるApiControllerとControllerの相違点
-
[解決済み】認証や認可に失敗した場合、AuthorizeAttributeがログインページにリダイレクトされるのはなぜですか?
-
[解決済み】ASP.NET MVCのルートをサブドメインに基づいて作成することは可能ですか?
-
[解決済み】cshtmlテンプレートで関数を作成する方法は?
-
[解決済み】ASP.NET MVC 3 - 部分テンプレートと表示テンプレートと編集テンプレート
-
[解決済み] ASP.Net MVC デフォルトの HTTP ヘッダーを削除する方法は?