2012-09-04 59 views
0

我在Global.asax中定義了以下路線:路線問題在ASP.NET MVC 3

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 
       ); 

後者航線工作正常,但我無法理解,爲什麼第一條路線行不通。

協定控制器上的AgreementSummery方法被定義爲:

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

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

你是什麼意思*不起作用*?導航到「host/Agreements2/AgreementSummery」是否未觸及操作? – McGarnagle

+0

完全不在調試器或IIS上 –

回答

1

ID沒有被定義爲可選的,它被定義爲空。可選將是如果它被分配一個值

public ActionResult AgreementSummery(int? id = null)