我正在尝试将通过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甚至可以实现这一点,还是需要创建自定义模型绑定器?
答案 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 (:).
错误发生。
这有点不安全,所以或者你可以在查询字符串中传递参数,他们会以这种方式正确地建模绑定。