You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC路由配置未正确传递参数问题求助

问题诊断与解决

这个错误的核心原因很明确:路由定义的参数名称和Action方法的参数名称不匹配,导致ASP.NET MVC无法正确将URL中的参数值绑定到Action的参数上。

具体问题点

你定义的路由是:

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

这里URL中的参数占位符是{IDArticolazione},但你的Action方法参数是:

public ActionResult Modifica(int id) { ... }

ASP.NET MVC的模型绑定是严格按照参数名称大小写不敏感匹配的,当它找不到名为id的路由参数时,就会给非可空的int id参数传入null,从而触发你看到的错误。

两种解决办法

你可以任选一种方式来修正:

方法1:修改Action参数名,和路由保持一致

把Action的参数名改成IDArticolazione,这样就能和路由里的参数名匹配:

public ActionResult Modifica(int IDArticolazione) { 
    // 从仓储中处理数据(注意这里也要把用到id的地方改成IDArticolazione)
    return RedirectToAction("Modifica", "Mattinale"); // 这里你之前写的"Modifica"控制器应该是笔误?
}

方法2:修改路由的参数名,和Action保持一致

把路由里的参数占位符改成{id},和Action的参数名对齐:

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

额外提示

另外注意你Action里的RedirectToAction("Modifica", "Modifica"),第二个参数是控制器名称,看起来你可能写错了,应该是RedirectToAction("Modifica", "Mattinale"),否则会尝试跳转到ModificaController的Modifica方法,可能引发新的错误。

内容的提问来源于stack exchange,提问作者Davide Vitali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:49:24