ASP.NET MVC如何在url-routing中正确映射参数

时间:2009-06-04 17:30:05

标签: c# asp.net-mvc asp.net-mvc-routing

我有以下路线

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

映射到Segnalazioni控制器类的以下方法:

    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 

2 个答案:

答案 0 :(得分:1)

发布所有路线。听起来您的URL由与此不同的路由处理。请记住,列出路线的顺序很重要。因此,如果您在此URL可以映射到的此路径之前有另一条路线,那么它将会。

答案 1 :(得分:0)

MvcContrib包含路由调试器。使用它,您将看到为此URL调用的路由。 Here是如何启用它的一些说明