MVC 验证在 Knockoutjs 帖子中丢失

2024-02-07

我正在使用 MVC4 和淘汰赛。我的页面上有一个强类型化到视图模型的表单。在该视图模型中,我定义了一些验证,例如:

[Required(ErrorMessage = "Title is required")]
public string Title { get; set; }

如果我在没有填写必填字段的情况下对表单进行标准发布,我的操作会发现模型无效并返回到视图,并且会显示一条主要验证消息,因为我有@Html.ValidationSummary以我的形式。各个字段也被标记为无效(带有消息),因为我有@Html.ValidationMessageFor与领域相关

所以然后我添加了淘汰赛,而不是仅仅发布我现在调用的表格ko.utils.postJson($("form")[0], self);。现在几乎一切正常,如果我发布未填充必填字段的表单,我的操作会检测到模型无效并返回到视图,但现在不显示单独的验证消息。

帖子之前填写的字段也会丢失。我尝试通过读取 mvc 视图模型并将变量设置为这些值来解决这个问题,如下所示。

var model = @Html.Raw(Json.Encode(Model));

然后在我的淘汰赛视图模型中设置该值

self.Title = ko.observable(model.Title);

但是当我输入“1”时,当失败的帖子返回时,它会用“1”填充该字段。

这并不是太复杂的表单,因此如果可以避免的话,我不想引入一些新的验证层。我不介意有一个验证帖子。

谢谢,丹


我问什么。过去两周我一直在探索这个话题。 (如果你愿意的话,可以查看我最近几天的问题)。我得出的结论是,数据注释和流畅验证在使用淘汰赛的客户端上不起作用很遗憾。因此你have to引入另一层验证。

好消息是它经过了充分的测试,并且与淘汰赛一样标准。

您主要有三个选择:

  • 淘汰赛验证 https://github.com/ericmbarnard/Knockout-Validation
  • 敲敲 https://github.com/Enome/knockknock
  • jQuery 验证 https://github.com/jzaefferer/jquery-validation

我原以为社区会倾向于建议使用 jQuery,但显然主流的淘汰赛验证是第一选择。它的行为与数据注释非常相似,但显然是在淘汰视图模型字段上完成的。

希望这有帮助(不要射击信使:))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 验证在 Knockoutjs 帖子中丢失 的相关文章

  • knockout valueUpdate 无法与 Pagedown 一起使用?

    我的看法有以下几点
  • EditorTemplate 的嵌套模型的 ASP.NET MVC3 条件验证

    假设你有一个 viewModel public class CreatePersonViewModel Required public bool HasDeliveryAddress get set Should only be valid
  • 我希望 jQuery 验证器向表单元素的父级添加一个类

    我该如何使用jQuery 验证器 http docs jquery com Plugins Validation添加 删除类名 例如validate 在表单元素的父元素上 li 这样我就可以通过仅设置一个类名来设置与该元素相关的所有内容的样
  • 如何在编辑器模板中获取序列/数组索引?

    案件 我有一个使用 X 类编辑器模板显示的 X 类项目列表 问题 如何获取编辑器模板内部正在处理的项目的索引 我一直在使用这个 HtmlExtension 它只返回迭代所需的 id 它基本上是一个正则表达式ViewData Template
  • Rails 4 单选按钮表单助手,true 不验证

    我在 needs dist 上附加了简单的是或否单选按钮 当我提交表单时选择 否 它工作得很好 但是当我选择 是 时 它会抛出验证错误吗 它仅在 needs dist gt true 时有效 Model validates presence
  • html5 输入模式属性在表单之外不起作用?

    这把小提琴 http jsfiddle net 2gaw3 按预期工作 当用户输入无效的国家 地区代码时 它会显示警告 这另一个小提琴 http jsfiddle net y66vH 4 没有form元素 不起作用 看来输入的pattern
  • asp.net mvc jquery 下拉验证

    我如何使用不显眼的 javascript 验证下拉列表 作为所需验证器的验证文本框 但它不适用于下拉列表 需要更改不显眼的 js 文件吗 或者还有其他选项来验证下拉列表吗 我想在我的 javascript 中检查 form validate
  • Spring验证非空元素的字符串列表

    我有一个模型类 其中包含字符串列表 该列表可以为空 也可以包含元素 如果它有元素 这些元素不能为空 举个例子 假设我有一个名为 QuestionPaper 的类 它有一个 QuestionId 列表 其中每个都是一个字符串 class Qu
  • Codeigniter PHP - 在锚点加载视图

    我在一个长页面的底部有一个表单 如果用户填写了表单但它不验证页面是否以典型的 codeigniter 方式重新加载 this gt load gt view template data 然而 由于表单位于页面底部 我需要将页面加载到那里 就
  • CakePHP 中没有模型的简单表单

    我正在尝试在产品页面中添加请求附加信息的表单 这是一个简单的表格 包含姓名 国家 地区 电子邮件和问题字段 我创立了这个tutorial http snook ca archives cakephp contact form cakephp
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 如何检查用户电子邮件的唯一性并将结果传递给 jQuery?

    我有这个问题 我正在控制器中检查用户电子邮件并发送 json 成功响应 如果已获取 并添加输入的 css 样式 我还需要阻止提交并添加一些消息 这是我的检查电子邮件操作 使用本文 http paydrotalks com posts 45
  • 在选中的复选框中发布表单时 ModelState 无效

    我遇到以下问题 如果我通过 AJAX 向 api 控制器提交包含复选框中选中值的表单 ModelState 对象会说它无效 先决条件 视觉工作室2012 ASP NET MVC 4 最终版 最新的 jQuery 和 jQuery 不显眼的验
  • 将属性值指定为 CDATA

    可以将 XML 属性值指定为 CDATA 吗 如果是的话 相同的模式是什么 如果不是 为什么 XML 中没有解决这个限制 不 你不能这样做 在什么构成属性和什么构成子元素之间存在非常细的界限 并且存在很大的争论 看here https st
  • 如何使用 Twitter Bootstrap 弹出窗口进行 jQuery 验证通知?

    我可以使用弹出窗口出现引导程序 http twitter github com bootstrap很容易 我还可以使用标准进行验证jQuery 验证插件 http docs jquery com Plugins Validation or
  • ckeditor 数据未通过 jQuery 验证进行验证

    我知道有很多关于此的问题 但我无法让它在我的一生中发挥作用 我尝试了几种解决方案 包括this http devlog waltercruz com usando ckeditor e jquery validate juntos 第二个答
  • 最小有效 JSON 是多少?

    我仔细阅读了 JSON 描述http json org http json org 但我不确定我是否知道这个简单问题的答案 最小可能的有效 JSON 字符串是什么 string 该字符串是有效的 JSON 吗 42简单的数字是有效的 JSO
  • Symfony2 无效形式且无错误

    我的 Symfony2 生成的 CRUD 表单有问题 与MongoDB文档 但我不认为这是相关的 在我的控制器的 createAction 方法中 当我调试表单结果时 form gt isValid returns false form g
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • Rails:验证字符串的最小和最大长度,但允许其为空白

    我有一个想要验证的字段 我希望该字段能够留空 但如果用户输入数据 我希望它采用某种格式 目前我在模型中使用以下验证 但这不允许用户将其留空 validates length of foo maximum gt 5 validates len

随机推荐

  • 限制 Apigility 中的结果

    我使用 Apigility 创建了一个代码连接 API 现在我正在使用标准创建存根 在我的PostResource有一种方法叫做fetchAll params array 我为该方法创建了代码 以便它返回一组可分页的结果 var Hydra
  • 在 MySQL 中查找同一个表中的重复项

    我有一个包含两列的表 艺术家 release id 我可以运行什么查询来显示重复记录 例如我的桌子是 ArtistX 45677 ArtistY 378798 ArtistX 45677 ArtistZ 123456 ArtistY 888
  • 显示ajax、Jquery返回的响应的html代码

    我有一个 jquery AJAX 函数 它检索一些 HTML 标记并将其显示在页面上 我还想显示返回的 HTML 的 html 代码 我四处寻找解决方案 但没有找到任何解决方案 有人可以帮忙吗 非常感谢 post get news php
  • 4x4 矩阵预乘和后乘

    我有以下功能 void Matrix Scale const float xScale const float yScale const float zScale Matrix scaleMatrix scaleMatrix m data
  • 如何查明某个函数被 javascript/jquery 调用了多少次?

    也许是一个奇怪的问题 但事实是 我有一个定期调用的函数 在该函数中我需要知道我处于哪个迭代中 或者该函数被调用了多少次 问题的简化版本 jQuery document ready function setInterval myFunctio
  • 有没有办法让 HTML5 数据列表使用模糊搜索?

    我有一组数据列表选项 我想在搜索时进行模糊匹配 例如 如果我输入 PHP HTML 或 PHPAndHTML 我希望其中任何一个与 PHP And HTML 选项匹配 有什么办法可以做到这一点吗 请参见这把小提琴 https jsfiddl
  • JavaScript + MVC + 用户界面

    我正在寻找新的 JavaScript 编程方法 我的目标是创建像 GMail 这样的 JavaScript 应用程序 我尝试过 GWT 但它看起来很复杂 而且代码也不时尚 我发现 MVC 模式是一种很好的编程方式 我总是在用 javascr
  • JavaFX 可重用 FXML 片段

    我正在实现一个选项卡式部分 其中每个选项卡将包含一个表视图 在此表视图中 无论选择哪个选项卡 都会呈现一个列子集 但某些选项卡将包含其他列 以编程方式处理 由于这些原因 每个选项卡都需要有一个单独的控制器 但我想知道是否可以在每个选项卡中重
  • 将 __m256 的奇数元素提取到 __m128 的有效(在 Ryzen 上)方法?

    是否有一种内在的或其他有效的方法将 AVX 寄存器的 64 位组件的高 低 32 位组件重新打包到 SSE 寄存器中 使用 AVX2 的解决方案就可以了 到目前为止 我正在使用以下代码 但探查器说它速度很慢锐龙 1800X Global c
  • Apache Aries Managed JPA 支持哪些 JPA 提供程序?

    显然是 OpenJPA 我也看到提到过 EclipseLink 和 Hibernate 但是功能上有显着差异吗 大多数差异来自于提供商对 OSGi 的感知程度 例如 您可能需要自己将 Hibernate jar 包装为 OSGi 捆绑包 或
  • 按单列的分位数对 pandas 数据框进行分组

    抱歉 如果这是重复的帖子 但我找不到相关的帖子 from random import seed seed 100 P pd DataFrame np random randint 0 100 size 1000 2 columns list
  • 如何在 r 中的 Shiny 应用程序中对反应函数进行计时

    我有一个想要计时的函数 然后在 UI 上显示执行该函数花费了多少时间 如何重新获取该函数的执行时间 我尝试将变量放在反应函数中 函数周围等 我只想计算反应函数运行所需的时间 然后显示它 我试图不使用额外的包 library shiny De
  • 将大数组拆分为两个数组

    我有一个很大的对象数组 想将其分成两个包含交替顺序的对象的数组 Example 0 1 2 3 4 5 6 变成这两个数组 它们应该交替 0 2 4 6 and 1 3 5 有很多方法可以分割数组 但是 如果数组很大 什么是最有效 成本最低
  • 地图方向配额限制

    您好 我编写了一个谷歌脚本 可以获取特定起点和终点的距离 我在网上阅读了很多文章 但它们不包括谷歌地图脚本的限制 我想知道使用普通 Gmail 和企业 Gmail ID 可以拨打多少个起点和终点 多少个呼叫 EDIT 我在用着Maps ne
  • Ubuntu:如何链接二进制文件

    我有一个 C 代码 我编译了它 现在有了二进制 xyz 现在 每次我需要执行二进制文件时 我都必须切换到相应的目录才能使用 xyz 执行它 但是如何使用 xyz 命令从任何地方运行二进制文件 如何将此二进制文件链接到 ubuntu 中的命令
  • 多次使用 set.seed 的奇怪行为

    我在 R 中做作业时得到了一个奇怪的结果 有人可以向我解释这是怎么回事吗 指令告诉我设置种子 1 以保持一致性 首先 我设置了两次seed 1 set seed 1 x lt rnorm 100 mean 0 sd 1 set seed 1
  • 为什么某些 golang.org 包带有“x”前缀

    为什么某些 golang org 包名称带有前缀x 引起我兴趣的具体套餐是 bcrypt https godoc org golang org x crypto 我主要关心的是x意味着类似 e 的东西X实验性的 如果我想要稳定的东西 我应该
  • 用户脚本中的@include 和@match 有什么区别?

    The 有关元数据块的 GreaseSpot 页面 http wiki greasespot net Metadata Block说两者非常相似但是 match 制定了更严格的规则 字符的意思是 GreaseSpot 然后继续teach h
  • Int 或 NSInteger 作为方法参数的对象。 Objective-C

    我在传递数字作为方法的参数时遇到一些问题 void meth2 int next int 要调用该方法 我需要这样 int next int 1 self performSelectorOnMainThread selector meth2
  • MVC 验证在 Knockoutjs 帖子中丢失

    我正在使用 MVC4 和淘汰赛 我的页面上有一个强类型化到视图模型的表单 在该视图模型中 我定义了一些验证 例如 Required ErrorMessage Title is required public string Title get