【问题标题】:ASP.NET MVC Date Model BindingASP.NET MVC 日期模型绑定
【发布时间】:2013-10-11 18:11:39
【问题描述】:

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

例如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 实现,还是我需要创建自定义模型绑定器?

【问题讨论】:

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


    【解决方案1】:

    原来这只是在URL中像往常一样传入日期时间字符串(例如2013-09-23T16:47:00)的情况,但是您需要添加requestPathInvalidCharacters 到 web.config 中的 httpRuntime,即:

    <httpRuntime requestPathInvalidCharacters="">

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

    虽然这有点不安全,所以您也可以在查询字符串中传递您的参数,这样它们就会正确地进行模型绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2011-03-15
      相关资源
      最近更新 更多