0

ページが最初に読み込まれるとき、URL はhttp://localhost:1245/のようになります。ただし、次のようにしたいと思います: http://localhost:1245/Home/Index/2/2012?Events=Show (/2/2012?Events=Show は重要な部分です)。最初からその 2 番目の URL でページを読み込むにはどうすればよいですか?

4

2 に答える 2

2

私がすることは、デフォルトの MVC ルートの前に新しいルートを追加して、次のようにすることです。

routes.MapRoute(
  "NewDefault", // Route name
  "{controller}/{action}/{month}/{year}", // URL with parameters
  new { controller = "Events", 
        action = "Shows", 
        month = DateTime.Now.Month,
        year = DateTime.Now.Year } // Parameter defaults
  );

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

デフォルトの URL (内部的に、ユーザーには表示されません) は/Events/Shows/4/2012(日付が の場合) になります4/19/2012。デフォルトのコントローラは でEventsController、デフォルトのアクションは ですEventsController.Shows

public EventsController
{
  public ActionResult Shows(int month, int year)
  {
    someModel model = new someModel();
    someModel.month = month;
    someModel.year = year;
    this.View(someModel);
  }
}
于 2012-04-19T22:17:56.097 に答える
1

追加:

  routes.MapRoute("MyRouteName", 
    "Home/Index/2/2012", new { controller = "Home", action = "Index" });

あなたのルーティングに。

HomeController の Index アクションを次のシグネチャを持つように変更します。

public ActionResult Index(string Events)....
于 2012-04-19T19:25:47.130 に答える