0

global.asaxで次のルートを定義しています。

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

後者のルートは問題なく機能しますが、最初のルートが機能しない理由がわかりません。

AgreementsコントローラーのAgreementSummeryメソッドは、次のように定義されます。

[HttpGet]
        public ActionResult AgreementSummery(int? id)
        {

            AgreementsModel model = new AgreementsModel();
            model.SelectedAgreementID = id.Value;
            return View(model);
        }
4

1 に答える 1

1

idはオプションとして定義されておらず、null許容として定義されています。オプションは、値が割り当てられている場合です

public ActionResult AgreementSummery(int? id = null)
于 2012-09-04T21:41:46.003 に答える