路由配置不带参数

时间:2019-01-09 09:24:56

标签: asp.net-mvc routes

我在控制器MattinaleController中具有以下操作:

public ActionResult Modifica(int id)
{
    // manipulate data from repository

    return RedirectToAction("Modifica", "Modifica");
}

这是我的路线:

routes.MapRoute(
    name: "",
    url: "",
    defaults: new { controller = "Mattinale", action = "Index" }
    );

routes.MapRoute(
    name: "",
    url: "ModificaComunicazione/{IDArticolazione}",
    defaults: new { controller = "Mattinale", action = "Modifica" }
    );

routes.MapRoute(
    name: "",
    url: "{anno}/{mese}/{giorno}",
    defaults: new { controller = "Mattinale", action = "Index" }
    );

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

当我开始调试并尝试调用路由myHost/ModificaComunicazione/5(此处为随机数)时,出现此错误(已翻译):

  

Parameters字典包含非参数'id'的Null值   方法'System.Web.Mvc.ActionResult'的可空类型'System.Int32'   'Mattinale.WebUI.Controllers.MattinaleController'中的Modifica(Int32)'

看起来好像没有参数。我想念什么?!

谢谢戴维。

2 个答案:

答案 0 :(得分:1)

只需通过此链接。 Route config doesn't take the parameter。参数名称应与操作中定义的名称相同。

答案 1 :(得分:0)

Davide,是的,您从URL获得了id参数,但没有发送给重定向。您应该将id参数发送到RedirectToAction方法。 检出:RedirectToAction with parameter