私は VWD Express 2010 で ASP.net MVC4 を使用しています。例としてこことここ/Home/
で提案されているように、余分なルートを URL から削除するように設定しました。私はそれらを正しい順序で配置するようにしました:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Home",
url: "{action}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
これは、削除に関する限り機能し/Home/
ますが、デフォルト以外のコントローラーにアクセスしようとすると 404 が発生します。
Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /LogItem/
デフォルト以外のものを削除すると、再び正常に動作するため、ルートまで追跡しました。ただし、何が間違っているのかわかりません。他の回答とドキュメントを理解することで、これはうまくいくはずです。
編集:私の説明からは明らかではないので、 など/About/
の代わりにリンクできるように「ホーム」ルートを追加しました/Home/About
。これは、グーグルで見つけた提案された解決策でした。HomeController
私は基本的に、短縮 URL ( /{action}
) で実装されたアクションと、完全に追加した他のコントローラー( /{controller}/{action}/{optional id}
)を一致させたいと考えています。