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

MVC参数返回空值问题排查:附控制器及路由代码

解决ASP.NET MVC中参数返回空值的问题

嘿,我一眼就瞅出问题所在啦!你的控制器Index方法接收的参数是name,但路由配置里定义的参数是id——这俩名字不匹配,MVC没法把URL里的参数正确绑定到方法参数上,自然就返回空值咯。

咱们来一步步修正这个问题:

方法一:修改路由参数名匹配方法参数

把路由里的{id}改成{name},让参数名对应上,这样就能正常绑定了。修改后的Global.asax.cs代码如下:

public class MvcApplication : System.Web.HttpApplication { 
    public static void RegisterRoutes(RouteCollection routes) { 
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
        routes.MapRoute( 
            "Default", // Route name 
            "{controller}/{action}/{name}", // URL参数部分把id改成name
            new { controller = "Home", action = "Index", name = UrlParameter.Optional } // 完善默认值配置
        );
    }
}

这样当你访问http://localhost:xxxx/Home/Index/John时,name参数就能拿到John的值了。

方法二:保持路由不变,调整控制器方法参数

如果你不想改动路由,也有两种小办法:

方案2.1:直接修改参数名为id

public class HomeController : Controller { 
    public string Index(string id) { 
        return "Welcome to MVC_Demo" + id; 
    } 
}

方案2.2:用特性指定绑定的路由参数名

public class HomeController : Controller { 
    public string Index([FromRoute(Name = "id")] string name) { 
        return "Welcome to MVC_Demo" + name; 
    } 
}

另外补充个小知识点:如果是通过QueryString传递参数(比如http://localhost:xxxx/Home/Index?name=John),那不管路由里的参数名是什么,只要方法参数名和QueryString的键一致,就能正确绑定哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:20:08