ASP.NET MVC 5如何获取URL中status参数值?RouteData取值为空问题
解决方法
因为status=1是URL中的查询字符串参数,而非路由规则定义的路由参数,所以无法通过RouteData.Values获取,你可以用以下几种方式获取该值:
- 直接通过
Request.QueryString获取:@Request.QueryString["status"] - 简化写法,直接通过
Request对象访问:@Request["status"] - 如果在控制器中,可通过模型绑定自动获取,给对应Action方法添加参数即可:
之后可通过public ActionResult Create(int id, int status) { // 直接使用status参数 return View(); }ViewBag.Status传递到视图,或者将参数封装进视图模型,再在视图中访问模型属性。
补充说明:id=6能通过RouteData.Values获取,是因为它匹配了路由配置中的路由模板(比如默认的{controller}/{action}/{id}),被解析为路由参数;而status未在路由模板中定义,会被当作查询字符串参数,存储在Request.QueryString集合中。
内容的提问来源于stack exchange,提问作者post4dirk
相关产品推荐
相关产品推荐

