首页 > 解决方案 > 路由配置不带参数

问题描述

我在控制器 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(此处为随机数)时,我收到此错误(已翻译):

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

看起来它不带参数。我错过了什么?!

谢谢,戴维德。

标签: asp.net-mvcroutes

解决方案


只需通过此链接。路由配置不带参数。参数名称应与操作中定义的名称相同。


推荐阅读