我有一条像
这样的路线 routes.MapRoute(
"Reports", // Route name.
"reports/{controller}/{action}/{id}/{start}/{end}", // URL with parameters.
new { controller = "Home", action = "Index", id = "", start="", end="" } // Parameter defaults.
);
其中start
和end
是DateTime?
当我编写Html.ActionLink时,它使用DateTime.ToString
方法生成路径。这些日期中有正确的斜线,这扰乱了路线。我想以某种方式控制路由生成以生成ISO 8601日期字符串。
理想情况下,我不想更改我的操作以获取字符串并在我的代码中进行转换,我想发信号通知路由生成器调用我选择的相应ToString
重载。
答案 0 :(得分:4)
在Html.ActionLink
中,当您宣布开始和结束值时,为什么不执行以下操作:
new{start = String.Format("{0:YYYY-MM-dd}", SomeDate)}
或者如果你还需要时间,那么这就是:
new{start = String.Format("{0:s}", SomeDate)}
有点工作,但它会保证它的格式正确。