2

私は 1 つのサイトを持っており、コントローラーは のようなユーザーの名前です。Mary も/John/NewPage同じです。

新しいユーザーごとにコントローラーを作成せずにこれを行うにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

カスタム ルーティングを調べます。何かのようなもの:

    context.MapRoute(
        "User_default", // Route name
        "{userName}/{controller}/{action}/{id}", // URL with parameters
        new { id = UrlParameter.Optional } // Parameter defaults
    )

ただし、これらの URL を自分で作成する必要があります。

于 2012-12-03T19:47:31.507 に答える
0

あなたはこのようなことをすることができます。「UserController」のような名前のコントローラーを定義してから、カスタムルートを使用して、URLに「UserController」を含める必要がないようにします。

context.MapRoute(
    "User_Route", // Route name
    "{userName}/{action}", // URL with parameters
    new { 
      controller = "UserController",
      action = "NewPage"
    } // Parameter defaults
);

この設定では、「/ Mary / NewPage」URLはUserController.NewPage( "Mary")を呼び出し、「/ John / EditPage」はUserController.EditPage( "John")を呼び出し、「/Jane」だけがUserControllerを呼び出します。 NewPage( "Jane")。

また、最初に呼び出されるように、そのルートの上にあるさまざまなコントローラーのルートを定義する必要があります。例えば:

context.MapRoute(
    "SomeOther_Route", // Route name
    "SomeOtherController/{action}/{id}", // URL with parameters
    new { 
      controller = "SomeOtherController"
    } // Parameter defaults
);

上記のURLは引き続き機能しますが、このURL "/ SomeOtherController / DefinedAction / 12"はSomeOtherController.DefinedAction(12)のようなものを呼び出します。

于 2012-12-03T21:20:57.907 に答える