ASP.NET MVC日期模型绑定

时间:2013-10-04 16:34:26

标签: c# .net asp.net-mvc model-binding

我正在尝试将通过URL传入的字符串绑定到我控制器中的操作中的参数。

e.g。 http://www.example.com/Controller/Action/2013-10-04/

我的Action方法是

public ViewResult Action(DateTime dateTime) {
  //some logic
}

我的路线映射是

routes.MapRoute("Example", "Controller/Action/{dateTime}/", new { Controller = "Controller", Action = "Action" });

上面指定的URL有效,并且dateTime正确填充日期和时间00:00:00。但是我也想定义一个时间,但是我不确定格式应该是什么,然后我尝试的其他任何东西都无法模拟绑定dateTime参数。

使用内置的ModelBinding甚至可以实现这一点,还是需要创建自定义模型绑定器?

1 个答案:

答案 0 :(得分:0)

事实证明,这只是像往常一样传递日期时间字符串的情况(例如 2013-09-23T16:47:00 ),但您需要添加< strong> requestPathInvalidCharacters 到web.config中的httpRuntime,即:

<httpRuntime requestPathInvalidCharacters="">

以便日期时间字符串中的冒号不会导致A potentially dangerous Request.Path value was detected from the client (:).错误发生。

这有点不安全,所以或者你可以在查询字符串中传递参数,他们会以这种方式正确地建模绑定。