Я перепробовал все варианты выше и ни один не работал. Вот что я сделал, что сработало:
@{
string str = @"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$";
}
<td>Email</td>
<td>
<input type="text" id="txtEmail" required name="email" pattern=@str />
</td>
Я создал строковую переменную и передал в нее весь код шаблона RegEx, затем использовал переменную в html, и Razor был крут с ней.