【问题标题】:BootstrapValidator, add custom server-side messageBootstrapValidator,添加自定义服务器端消息
【发布时间】:2014-10-17 07:05:48
【问题描述】:

请帮我解决一个简单的问题。

我使用 MVC4 + 引导验证。

我有一个表单 [登录名,密码] 身份验证。当用户按下提交按钮时,ajax 表单将其输入数据发送到服务器,然后检查用户是否已通过身份验证等。如果服务器错误(密码或用户名错误)服务器返回 json 对象“error=message”。

提交 ajax 表单后,它会调用 js 函数 onSuccess 来检查返回数据是否错误。

所以,在这里我想以某种方式使用引导程序向用户显示带有服务器端数据的消息(在本例中,他的邮件或密码错误),例如在输入电子邮件字段中。我怎样才能做到这一点? 此外,如何在提交表单并从服务器获取消息后向表单添加自定义消息?

谢谢。

【问题讨论】:

    标签: twitter-bootstrap asp.net-mvc-4 validation


    【解决方案1】:

    通常我们遵循的标准是,用户名和密码字段应该只检查其他验证,如长度/必需/字符类型等,而不是显示“用户名或密码不正确”等消息或其他消息。

    实际上,这些是特定于表单的消息,而不是特定于字段的消息。因此,要显示表单消息,请按照以下步骤操作:

    添加验证摘要 html 帮助器(在您的视图中的首选位置),具有重载功能以仅显示非属性错误(剃刀),(默认情况下,这将创建 无序列表 结构) 列表项中的每个错误消息:

    @Html.ValidationSummary(true)
    

    在您的控制器中,将自定义消息添加到 ModelState 错误消息中,如下所示 (c#):

    ModelState.AddModelError("", "The user name or password provided is incorrect.");
    

    这会将错误消息显示为您的 html 中的无序列表,而不是在您的字段/属性特定的验证控件中。

    您可以根据需要创建自定义验证摘要 html 帮助器来呈现 html。

    【讨论】:

    • hm... 但是如何在 Ajax.Form 中使用 ModelState?我的意思是,我的 Ajax.Form 调用 OnSuccess 属性中指定的 OnLogin 函数。所以在那之后我想让引导程序显示用户没有被授权。
    • ajax 调用请参考以下链接:stackoverflow.com/questions/13093186/…
    • 这个链接我使用标准的 jquery 验证引擎($.validate() 方法),但是如何在提交表单后启动引导验证器并使用来自服务器的消息添加自定义错误?
    猜你喜欢
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 2016-10-27
    • 1970-01-01
    • 2020-09-14
    • 2014-08-16
    相关资源
    最近更新 更多