Why don't you take advantage of HTML5
for Time
@Html.TextBox("timeFrom", DateTime.Now.AddHours(2).ToString("HH:mm"), new { type = "time", size = 3, step = "1" })
for date
@Html.TextBox("Mydate", new { required = "required", type="date" })
for number
<input type="number" name="quantity" min="1" max="100">
@Html.TextBox("number", new {type="number" name="quantity" min="1" max="100"})
for dependency field you can use system.componentmodel. data annotations