我试图将通过URL传入的字符串建模到控制器中的一个操作中的一个参数。
例如http://www.example.com/Controller/Action/2013-10-04/
我的行动方法是
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来说,这是可能的吗?或者我需要创建一个定制的模型绑定器?
发布于 2013-10-05 19:06:29
事实证明,它只是像往常一样传递日期-时间字符串(例如,URL中的2013-09-23T16:47:00),但您需要在web.config中将requestPathInvalidCharacters添加到httpRuntime中,即:
<httpRuntime requestPathInvalidCharacters="">
这样,日期时间字符串中的冒号就不会导致A potentially dangerous Request.Path value was detected from the client (:).错误发生。
但是这有点不安全,因此您也可以在查询字符串中传递您的参数,它们将以这种方式正确地建模绑定。
https://stackoverflow.com/questions/19186410
复制相似问题