1

私はASP.NET MVC 4 を使用しており、非常に基本的なルートを記述しようとしていますが、機能せず、非常に不満を感じています!

URL http://www.mywebsite.com/my-pageがPageというコントローラーとアクション メソッドIndexをトリガーするようにします。

これ以外にルート設定はありません。

RouteTable.Routes.MapRoute(
    name: "Default",
    url: "my-page",
    defaults: new { controller = "Page", action = "Index" }
);

セットアップに何か問題がありますか、それともどこが間違っていますか?

私が得るエラーは次のとおりです。

パス '/my-page' のコントローラーが見つからないか、IController を実装していません。

4

1 に答える 1

0

主な問題は、デフォルト ルートをオーバーライドしようとしていることです。MVC4 では、ルートは App_Start/RouteConfig.cs で定義されます。「デフォルト」ルートは最後のルートである必要があります。

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

次に、特定のルートに対して、デフォルト ルートの前に次を使用します。

        routes.MapRoute(
            name: "MyPage",
            url: "my-page",
            defaults: new { controller = "Page", action = "Index" }
        );

最後に、コントローラ PageController.cs にアクション Index と View Views/Page/Index.cshtml があることを確認します。

public class PageController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}
于 2013-01-23T02:32:40.993 に答える