【发布时间】:2015-08-08 09:39:47
【问题描述】:
我正在我的站点中构建一个自定义部分,它有多个路由,所以我的控制器设置如下:
- 控制器 - ExportToExcel 操作
- EomSpreasheet 参数
- eomdate,siteid
在 routeconfig 中,我进行了以下设置。
routes.MapRoute(name: "EomCoverSheet",
url: "{controller}/{action}/{eomdate}/{siteid}",
defaults:
new
{
controller = "ExcelExport",
action = "EomSpreasheet",
eomdate = UrlParameter.Optional,
siteid= UrlParameter.Optional
});
当我调用控制器时,以及在我单步执行的代码中,eomdate 和 siteid 的值为 null。当我查看路由数据时,我可以看到动作和控制器,但参数是针对我在 routeconfig 文件中拥有的另一条路由。
我过去曾多次这样做,但这是我第一次看到这种行为,不知道如何解决它。如果您能提供任何帮助,我们将不胜感激。
【问题讨论】:
-
您的路线注册顺序是什么?
-
显示方法的签名以及调用方法的方式。还要注意,只有最后一个参数可以标记为
UrlParameter.Optional(它会起作用,但如果你只提供一个参数,你的url将是...?eomdate=xxx&siteid=yyy而不是.../xxx/yyy)
标签: asp.net-mvc