0

ルートがどのように機能するか経験がありません。

今、私は次のURLを持っています:

http://website.com/controller1/action1
http://website.com/controller1/action2

質問、URLにhttp://website.com/controller1/action1影響を与えずに別のURLにルーティングする方法http://website.com/controller1/action2

意味:

にアクセスするhttp://website.com/controller1/action1と url: を表示したいのですhttp://website.com/shortcutが、http://website.com/controller1/action2と同じように表示しhttp://website.com/controller1/action2ます。

可能です ?

4

2 に答える 2

2

routeCollectionファイルのGlobal.aspxadd to メソッドにルートのようなものを追加できますRegisterRoutes

routes.MapRoute(
    name: "shortcut",
    url: "shortcut",
    defaults: new { controller = "controller1", action = "action1" }
);
于 2013-09-10T12:35:02.303 に答える
0

新しい ASP.NET MVC 3 アプリケーションの既定のルートは、最初の 2 つの要求を処理しますが、命名規則について混乱する可能性があります。たとえば、 という名前のコントローラー クラスとその中にHomeControllerあるという名前のアクションがaction1ある場合、そのルートのデフォルトの処理は/Home/action1.

/controller1/action1andを処理するには、文字通りコントローラ クラスに名前を付け、 2 つのアクションを追加/controller1/action2する必要があります。controller1Controller

public class controller1Controller : Controller
{
    public ActionResult action1()
    {
        return View();
    }
    public ActionResult action2()
    {
        return View();
    }
}

ルートを処理するには、デフォルト ルートの/shortcutに定義されている限り、Satpal が提案したものを使用できます。ルートが具体的であるほど、ルート定義の前の方に表示する必要があります。

routes.MapRoute(
    name: "nameOfShortcutRoute",
    url: "shortcut",
    defaults: new { controller = "controller1", action = "action1" }
);

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

優れたルーティング チュートリアルについては、このリンクを確認してください http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs

于 2013-09-10T12:38:53.133 に答える