为什么可选参数值在MVC5中自动填充routedata?

时间:2014-12-03 05:32:59

标签: c# asp.net-mvc asp.net-mvc-5

我在名为" ReportController"的控制器中有这样的MVC动作。 :

[HttpGet]    
public virtual ActionResult Index(int id, Dictionary<string,string> filtersVal = null)
{
        ...
}

当我尝试像这样调用页面时:http://domain.com/report/index?id=1它正确地命中了操作,但填充了&#34; filerVal&#34;带有MVC路由信息的参数,如下:

  

[0] = {[控制器,报告]}   [1] = {[action,index]}

如何避免这种情况,以便filterVal参数保持为null。

请注意:我们最近搬到了MVC5 ..它在MVC3中运行良好 另外:如果我像这样调用相同的动作: http://domain.com/report/index?id=2&filterVal[0].Key=136&filterVal[0].Value=1然后它在&#34; filterVal&#34;中具有正确的值。参数。

有人可以建议我如何避免第一种情况?

感谢。

1 个答案:

答案 0 :(得分:-1)

如果你的路线表有这样的条目:

{controller}/{action}/{id}

,其中{id}是可选的,您应该使用网址

访问您的网页
  

http://yourdomain.com/index/1?xxx=yyy&aaa=bbb

xxx=yyyaaa=bbb成为filtersVal中的值。