This is just for curiosity
Why does this code work:
Html.TextBoxFor(x => x.Age, new { @Value = \"0\"})
and this doe
I'm not 100% sure but, that could be value is a keyword in properties, readonly isn't. Look at properties from MSDN.
value
readonly