RouteConfigセットアップ内の動作を理解しようとしています。これが私が持っているものです:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "2KeywordController",
url: "{keyword1}-{keyword2}-{controller}/{action}",
defaults: new { action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
}
}
ContactControllerというコントローラーと、/ Views / Contact / Index.cshtmlの下に、フォームを作成するための次のビューがあります。
@using (Html.BeginForm("Index", "contact", FormMethod.Post, new { id = "contactform" }))
example.com/kw1-kw2-contactに移動すると、ContactControllerが正しく呼び出され、デフォルトの連絡先ビューが表示されます。ソースを見ると、フォームのアクションが「/contact」ではなく「/kw1-kw2-contact」に設定されていることに驚きました。Html.Begin()を使用する方法はありますが、2つのキーワードなしでコントローラー名だけが動作しているように見えますか?例/contact