¿Cómo puedo representar html en el mensaje de validación en ASP.NET MVC?

Actualmente estoy desarrollando una página de registro. Cuando el usuario ya exista, deseo proporcionar enlaces de contraseña de inicio de sesión y restablecimiento para el usuario en mensaje de error para el campo de correo electrónico. En el controlador tengo:

[HttpPost] public ActionResult Register(RegistrationModel registration) { ... if(userExists) { const string errorMessage = "User already exist. You can login ..."; ModelState.AddModelError("Email", errorMessage); return View("Register", registration); } } 

Pero cuando bash mostrar este mensaje a la vista, no obtengo lo que esperaba. Me sale el formato HTML como texto sin formato. Ya lo he intentado

 @using(Html.BeginForm()) { 
@Html.TextBoxFor(m => m.Email) @{ @Html.ValidationMessageFor(m => m.Email) ... @Html.Raw(Html.ValidationMessageFor(m => m.Email)) ... string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); @Html.Raw(validationMessage) ... string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString(); @Html.Raw(validationMessage) ... string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); @(new HtmlString(validationMessage)) ... string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString(); @(new HtmlString(validationMessage)) ... string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); @(new MvcHtmlString(validationMessage)) ... string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString(); @(new MvcHtmlString(validationMessage)) }
}

 @Html.Raw(HttpUtility.HtmlDecode(Html.ValidationMessageFor(m => m.Email).ToHtmlString())) 

Aunque no es bonito

Encontré este post mientras lo resolvía yo mismo usando ASP.NET Core.

Lo que terminé haciendo fue agregar mi parte de mi mensaje de validación en modelstate.AddError (), y agregar por separado a ViewData el bit que tenía el HTML que quería procesar, de esta manera:

ViewData [“myKey”] = “My html”;

Se siente bastante feo y probablemente hay mejores formas de hacerlo, pero para mis necesidades muy limitadas, esto se ajusta a la perfección.

Lee esta publicación para evaluar errores

¿Cómo agregar errores de validación en la colección de validación asp.net mvc?

En su opinión

Html.ValidationMessage (“Correo electrónico”)