Why would you not want to use data annotations?
Relying only upon client side validation is not a good idea as a user could have javascript disabled within their browser, be using an older browser in the case of HTML5 form validation. This only leads to a user submitting invalid form data. You should always use a combination of client / server side validation.
I would strongly recommend you create a view model and enable data annotations. For example note, the usage of the required attribute and a custom email attribute for your validation purposes:
[Required(ErrorMessage = "Please enter email address"]
[Email(ErrorMessage = "Please enter valid email")]
public string Email { get; set; }
An example email validation attribute:
public class EmailAttribute : RegularExpressionAttribute
{
private const string EmailReg = @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$";
public EmailAttribute() : base(EmailReg)
{
}
}
Now, as per your question if you want to use only client side validation then you should definitely not rely upon HTML5 form validation. A quick way of enabling validation would be to get the jquery validation plugin.
Demo here: http://jquery.bassistance.de/validate/demo/