我怎样才能呈现验证消息的HTML ASP.NET MVC? [英] How can I render html in validation message in ASP.NET MVC?

查看:136
本文介绍了我怎样才能呈现验证消息的HTML ASP.NET MVC?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在开发一个注册页面。当用户已经存在我想提供登录名和密码重置链接,用户在错误信息的电子邮件领域。在控制器我有:

  [HttpPost]
公众的ActionResult注册(注​​册RegistrationModel)
{
  ...  如果(userExists)
  {
      常量字符串的errorMessage =用户已经存在,你可以和LT; A HREF =/帐号/登录>登录和LT; / A> ......;
      ModelState.AddModelError(电子邮件,的errorMessage);
      返回视图(注册,注册);
  }
}

但是,当我试图输出此消息,鉴于我没有得到我的期望。我得到的HTML标记像纯文本。 我已经试过

  @using(Html.BeginForm())
{
< D​​IV> @ Html.TextBoxFor(M = GT; m.Email)
@ {
   @ Html.ValidationMessageFor(M = GT; m.Email)   ...   @ Html.Raw(Html.ValidationMessageFor(M = GT; m.Email))   ...   串validationMessage = Html.ValidationMessageFor(M => m.Email)的ToString();
   @ Html.Raw(validationMessage)   ...   串validationMessage = Html.ValidationMessageFor(M => m.Email).ToHtmlString();
   @ Html.Raw(validationMessage)   ...   串validationMessage = Html.ValidationMessageFor(M => m.Email)的ToString();
   @(新HtmlString(validationMessage))   ...   串validationMessage = Html.ValidationMessageFor(M => m.Email).ToHtmlString();
   @(新HtmlString(validationMessage))   ...   串validationMessage = Html.ValidationMessageFor(M => m.Email)的ToString();
   @(新MvcHtmlString(validationMessage))   ...   串validationMessage = Html.ValidationMessageFor(M => m.Email).ToHtmlString();
   @(新MvcHtmlString(validationMessage))}
< / DIV>
}


解决方案

  @ Html.Raw(HttpUtility.HtmlDe code(Html.ValidationMessageFor(M = GT; m.Email ).ToHtmlString()))

是不是pretty虽然

I am currently developing a registration page. When user already exists I want to provide login and reset password links for user in error message for email field. In controller I have:

[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);
  }
}

But when I try to output this message in view I do not get what I expect. I get html markup like plain text. I've already tried:

@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>
}

解决方案

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

Isn't pretty though

这篇关于我怎样才能呈现验证消息的HTML ASP.NET MVC?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆