淘汰赛显示服务器验证错误

奥列格·沃尔科夫

我是淘汰赛的新手。我想在我的 ASP.NET MVC 项目中使用它。但我不明白如何从服务器显示验证错误。

例如,我们有一个带有登录名和密码输入的身份验证表单。我可以在客户端进行必需或长度验证。但是当我向服务器提交表单但未找到提交登录的用户或密码不正确时,我该怎么办?如何使用knockout.js 显示服务器验证错误?

更新 1

以控制器代码为例,它会返回字典:项目键,错误信息

[HttpPost]
public ActionResult MyAction(MyModel model)
{
    if(ModelState.IsValid)
    {
      ...
    }
    var errorList = ModelState.ToDictionary(
    kvp => kvp.Key,
    kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray());
    return Json(errorList);
}
多德布里安

向您的视图模型添加一个表示错误消息的属性,并使其可观察。然后执行 ajax 请求以对用户进行身份验证,完成后您应该得到 JSON 格式的结果,并将其放入该 observable 中。您还可以添加另一个属性来指示请求是否成功,并使用它来显示错误消息。

该模型可能如下所示:

var model = {
   ... // your current properties
   errorMsg : ko.observable(""),
   isError: ko.observable(false)
}

需要时使用visible绑定isError显示错误消息。

样本

在以下示例中,您将errors随 AJAX 结果一起获取对象并将其传递给setErrors方法。的每个成员errors对应于表单域。错误消息仅在定义属性时可见。

var model = {
  errors: {
    user: ko.observable(),
    email: ko.observable()
  },
  setErrors: function(errors) {
    this.errors.user(errors.user);
    this.errors.email(errors.email);
  }
};

ko.applyBindings(model);

// Get the results from AJAX and pass them as params:
var ajaxResults = {
  errors: {
    user: "Username is not available",
    email: "Incorrect email address"
  }
};

model.setErrors(ajaxResults.errors);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<form>
    <input type="text" name="user">
    <span data-bind="visible: errors.user, text: errors.user"></span>
    <br>
    <input type="text" name="email">
    <span data-bind="visible: errors.email, text: errors.email"></span>
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态淘汰赛验证未显示错误消息

来自分类Dev

淘汰赛验证组错误

来自分类Dev

淘汰赛验证组错误检查

来自分类Dev

minLength淘汰赛验证的自定义错误消息

来自分类Dev

如果数据为空,则用淘汰赛显示错误

来自分类Dev

淘汰赛验证 - 动态验证消息

来自分类Dev

淘汰赛observableArray与WebApi Odata服务

来自分类Dev

在淘汰赛中显示分组表

来自分类Dev

淘汰赛显示未更新

来自分类Dev

淘汰赛验证-自定义验证程序未显示消息

来自分类Dev

jQuery微调器和淘汰赛

来自分类Dev

使用淘汰赛的计算器

来自分类Dev

淘汰赛验证-输入验证其他字段

来自分类Dev

淘汰赛设计

来自分类Dev

淘汰赛目标

来自分类Dev

自定义淘汰赛验证3参数

来自分类Dev

淘汰赛验证不适用于DatePicker bindingHandler

来自分类Dev

Bootstrap输入组附加Durandal淘汰赛验证

来自分类Dev

淘汰赛验证长度始终为0

来自分类Dev

启动后淘汰赛未验证可见检查

来自分类Dev

淘汰赛验证?小提琴提供

来自分类Dev

当父母互斥时,淘汰赛验证孩子

来自分类Dev

Bootstrap Input-Group-Addon Durandal淘汰赛验证

来自分类Dev

淘汰赛中的依赖验证不起作用

来自分类Dev

淘汰赛-显示javascript而不是数据绑定值

来自分类Dev

淘汰赛-如果日期大于,则显示元素

来自分类Dev

淘汰赛选择显示对象对象的选项

来自分类Dev

选择显示/隐藏时的淘汰赛计算重置

来自分类Dev

淘汰赛未在MVC视图中显示数据