2009-06-04 59 views
0

我有以下途徑ASP.NET MVC如何正確地映射在一個參數的URL路由

 routes.MapRoute(
      "Segnalazioni_CercaSegnalazioni", 
      "Segnalazioni/CercaSegnalazioni/{flag}", 
      new { controller = "Segnalazioni", action = "CercaSegnalazioni", flag = 7 } 
     ); 

映射到類SegnalazioniController以下methon:

public ActionResult CercaSegnalazioni(int flag) 
    { 
     ViewData["collezioneSegnalazioni"] = Models.Segnalazioni.Recupera(flag); 
     System.Xml.Linq.XElement x = (System.Xml.Linq.XElement)ViewData["collezioneSegnalazioni"]; 
     return View("Index"); 
    } 

怎麼來的鏈接http://localhost:1387/Segnalazioni/CercaSegnalazioni/1給我的錯誤

The parameters dictionary contains a null entry for parameter 'flag' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult CercaSegnalazioni(Int32)' in 'RecuperoPagatiMvc.Controllers.SegnalazioniController'. To make a parameter optional its type should be either a reference type or a Nullable type. 
Nome parametro: parameters 
+0

聽起來像我,就像你沒有擊中那條路線。如果您將路由發佈到路由表頂部,它是否工作? – 2009-06-04 17:36:30

回答

1

張貼您的所有路線。這聽起來像你的網址正在通過不同的路線處理。請記住,您列出路線的順序確實很重要。因此,如果您有另一條路線,此URL可以映射到此路線,它將會。

0

MvcContrib包含路由調試器。使用它,你會看到爲這個URL調用哪個路由。 Here是一些說明如何啓用它