Подтвердить что ты не робот

Как я могу отобразить html в сообщении проверки в ASP.NET MVC?

В настоящее время я разрабатываю страницу регистрации. Когда пользователь уже существует, я хочу предоставить логин и reset ссылки для пароля для пользователя в сообщении об ошибке для поля электронной почты. В контроллере у меня есть:

[HttpPost]
public ActionResult Register(RegistrationModel registration)
{
  ...

  if(userExists)
  {
      const string errorMessage = "User already exist. You can <a href="/account/login">login</a> ...";
      ModelState.AddModelError("Email", errorMessage);
      return View("Register", registration);
  }
}

Но когда я пытаюсь вывести это сообщение, я не понимаю, чего я ожидаю. Я получаю html-разметку, как обычный текст. Я уже пробовал:

@using(Html.BeginForm())
{
<div>@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))

}
</div>
}
4b9b3361

Ответ 1

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

Не очень, хотя

Ответ 2

Нашел этот пост, выяснив это сам, используя ASP.NET Core.

То, что я закончил, заключалось в добавлении моей части моего сообщения проверки в modelstate.AddError() и отдельном добавлении к ViewData бит, который имел Html, который я хотел отобразить, например:

ViewData [ "myKey" ] = "Мой html";

Это кажется довольно уродливым, и, вероятно, лучшие способы сделать это, но для моих очень ограниченных потребностей это прекрасно подбирает счет.