为什么可选参数值在 MVC5 中自动填充路由数据
本文关键字:填充 路由 数据 MVC5 参数 为什么 | 更新日期: 2023-09-27 18:32:57
我在名为"ReportController"的控制器中有这样的MVC操作:
[HttpGet]
public virtual ActionResult Index(int id, Dictionary<string,string> filtersVal = null)
{
...
}
当我尝试像这样调用页面时: http://domain.com/report/index?id=1 它正确命中操作,但使用MVC路由信息填充"filerVal"参数,如下面:
[0] = {[控制器,报告]} [1] = {[操作,索引]}
我怎样才能避免这种情况,以便过滤器瓦尔参数保持为空。
请注意:我们最近迁移到MVC5..它在MVC3中工作正常另外:如果我像这样调用相同的动作:http://domain.com/report/index?id=2&filterVal[0].key=136&filterVal[0]。值=1 然后它在"filterVal"参数中具有正确的值。
任何人都可以建议我如何避免第一种情况吗?
谢谢。
如果您的路由表包含如下条目:
{controller}/{action}/{id}
,其中{id}
是可选的,则应使用 url 访问您的页面:
http://yourdomain.com/index/1?xxx=yyy&aaa=bbb
其中xxx=yyy
和aaa=bbb
成为filtersVal
中的值。