如何控制ASP.NET MVC路由生成?

时间:2009-10-27 21:13:22

标签: asp.net-mvc datetime

我有一条像

这样的路线
        routes.MapRoute(
        "Reports",                                              // Route name.
        "reports/{controller}/{action}/{id}/{start}/{end}",     // URL with parameters.
        new { controller = "Home", action = "Index", id = "", start="", end="" }  // Parameter defaults.
    );

其中startend是DateTime?

当我编写Html.ActionLink时,它使用DateTime.ToString方法生成路径。这些日期中有正确的斜线,这扰乱了路线。我想以某种方式控制路由生成以生成ISO 8601日期字符串。

理想情况下,我不想更改我的操作以获取字符串并在我的代码中进行转换,我想发信号通知路由生成器调用我选择的相应ToString重载。

1 个答案:

答案 0 :(得分:4)

Html.ActionLink中,当您宣布开始和结束值时,为什么不执行以下操作:

new{start = String.Format("{0:YYYY-MM-dd}", SomeDate)}

或者如果你还需要时间,那么这就是:

new{start = String.Format("{0:s}", SomeDate)}

有点工作,但它会保证它的格式正确。

相关问题