0

私はMVCにまったく慣れていません。現在、ルーティングで問題が発生しています。私のプロジェクトのURLは/account/Createです。コントローラにアクセスしてCreateの作業を行うことはできますが、そのレベルでコードを記述する必要があるため、/accountcontrollerにアクセスする必要があります。

/ account/create-このレベルのコードにアクセスできます
/account-このコントローラーにアクセスする方法がわかりません

プロジェクト構造:
サンプルプロジェクト

  • コントローラー
  • モデル
  • 意見

次のコードで何を変更する必要がありますか?

//global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } //Parameter defaults
    );
}
4

2 に答える 2

0

/account/createアカウントコントローラーのコードにアクセスしています。 Createアカウントコントローラーのメソッドである必要があります(デフォルトルートを変更しない限り)。アカウントコントローラーで定義したパブリックメソッドには、/account/methodURLからアクセスできます。投稿したルートに基づいて、/ account URLに移動すると、アカウントコントローラーのIndexメソッドが呼び出されます。

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    **new { controller = "Home", action = "Index", id = UrlParameter.Optional }** // Parameter defaults
);

上記のaction="Index"の部分は、アカウントコントローラーのデフォルトのメソッドを定義しているため、この場合、/accountURLに移動することは/account/indexURLと同等です。

そして、私はあなたが質問でアカウントを間違って綴ったことに気づきました、それがあなたの問題であるかもしれないかどうかわかりません;)


アップデート

これが目的であるかどうかはわかりませんが、/ Accountレベルでコードを記述する必要がある場合は、コントローラーのコンストラクターでこれを行うことができます。

于 2013-03-27T05:29:30.607 に答える
0

MVCを大幅にカスタマイズしない限り、コントローラーはmvcのControllerから派生したクラスに対応し、アクションはそれらのコントローラーのメソッドに対応します。

コントローラ/アカウントにアクセスできないと言ったときに何を達成しようとしていますか?

コントローラはアクションのコンテナにすぎないため、アクションを指定する必要があります。もちろん、アクションが指定されていない場合に備えて、デフォルトのアクションを使用できます。これは、上記のルートでデフォルトで指定されています。それはインデックスと呼ばれています

于 2013-03-27T05:29:34.393 に答える