Custom DateTime model binder in Asp.net MVC
Posted
by Robert Koritnik
on Stack Overflow
See other posts from Stack Overflow
or by Robert Koritnik
Published on 2010-03-01T14:52:43Z
Indexed on
2010/06/11
6:43 UTC
Read the original article
Hit count: 355
I would like to write my own model binder for DateTime
type. First of all I'd like to write a new attribute that I can attach to my model property like:
[DateTimeFormat("d.M.yyyy")]
public DateTime Birth { get; set,}
This is the easy part. But the binder part is a bit more difficult. I would like to add a new model binder for type DateTime
. I can either
- implement
IModelBinder
interface and write my ownBindModel()
method - inherit from
DefaultModelBinder
and overrideBindModel()
method
My model has a property as seen above (Birth
). So when the model tries to bind request data to this property, my model binder's BindModel(controllerContext, bindingContext)
gets invoked. Everything ok, but. How do I get property attributes from controller/bindingContext, to parse my date correctly? How can I get to the PropertyDesciptor
of property Birth
?
Edit
Because of separation of concerns my model class is defined in an assembly that doesn't (and shouldn't) reference System.Web.MVC assembly. Setting custom binding (similar to Scott Hanselman's example) attributes is a no-go here.
© Stack Overflow or respective owner