C# 远程验证是否显示红色框但没有错误消息?ASP-mvc5

C# 远程验证是否显示红色框但没有错误消息?ASP-mvc5,c#,asp.net,asp.net-mvc,json,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Json,Asp.net Mvc 5,所以,我尝试对用户名和电子邮件使用自定义验证,但它可以工作,但只会给出一个红色框。它实际上并没有显示。。这是我的密码 [Required] [Display(Name = "User name")] [System.Web.Mvc.Remote("UserExists", "Account", ErrorMessage = "UserName already exists, please pick another one.")] [Editable(true)] 控制器

所以,我尝试对用户名和电子邮件使用自定义验证,但它可以工作,但只会给出一个红色框。它实际上并没有显示。。这是我的密码

[Required]
    [Display(Name = "User name")]
    [System.Web.Mvc.Remote("UserExists", "Account", ErrorMessage = "UserName already exists, please pick another one.")]
    [Editable(true)]
控制器。。。 公共JsonResult UserExists(字符串用户名) {

        var user = UserManager.FindByName(UserName);

        return Json(!db.AspNetUsers.Any(x => x.UserName == UserName),
                                   JsonRequestBehavior.AllowGet);
    }
所以,是的,它显示了一个红色的框,证明用户名存在,但它实际上没有显示错误消息。如果我要提交,它会显示错误消息,否则不会。 这就是模型

<script src="~/Scripts/jquery-2.0.3.js"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<fieldset>
    @Html.AntiForgeryToken()
    <h4>Create a new account.</h4>
    <hr />
    @Html.ValidationSummary()
    <div class="form-group">
        @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
            @Html.ValidationMessageFor(m => m.UserName)
        </div>

@Html.AntiForgeryToken()
创建一个新帐户。

@Html.ValidationSummary() @LabelFor(m=>m.UserName,新的{@class=“col-md-2控制标签”}) @TextBoxFor(m=>m.UserName,新的{@class=“form control”}) @Html.ValidationMessageFor(m=>m.UserName)
这就是您想要实现的功能:

public JsonResult UserExists(string UserName) {

    var user = UserManager.FindByName(UserName);
    if (!db.AspNetUsers.Any(x => x.UserName == UserName))
    return Json(true, JsonRequestBehavior.AllowGet);

   return Json(string.Format("{0} is not available", UserName) , JsonRequestBehavior.AllowGet);

}
将远程标记更新到以下位置:

[Remote("UserExists", "Account")]
它只是删除错误消息,基本上,除了真实返回之外的任何内容都是发送回客户端的错误消息

有关更多信息,请访问:


视图是什么样子的?您是否实际输出了错误消息,例如
@Html.ValidationMessageFor(model=>model.UserName)
嘿,我已经更新了它..嗨,为信息干杯,返回错误消息肯定是最好的主意。至于我原来的问题,它仍然在做。它仍然只是给出一个红色框,然后在页面刷新后给出错误消息。好的,我似乎已经修复了它。显然“@Html.AntiForgeryToken()”正在阻止它发出错误消息。感谢您的帮助。请确保将此添加到控制器的顶部:[OutputCache(Location=OutputCacheLocation.None,NoStore=true)]谢谢,必须有人告诉我有关向上投票和接受的信息。:)