2013-10-04 3 views
0

Я пытаюсь моделировать привязку строки, переданной через URL-адрес, в параметр в действии в моем контроллере.ASP.NET MVC Date Model Binding

например. 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 или мне нужно создать собственное связующее устройство?

ответ

0

Оказывается, это просто случай перехода в дата-время строки, как обычно (например, 2013-09-23T16: 47: 00) в URL, но вам нужно добавить requestPathInvalidCharacters в httpRuntime в web.config, то есть:

<httpRuntime requestPathInvalidCharacters="">

так, что колоны в дата-время строки не привести к возникновению ошибки A potentially dangerous Request.Path value was detected from the client (:)..

Это немного небезопасно, так как вы можете передать свой параметр в строке запроса, и они будут правильно моделировать привязку таким образом.