【发布时间】:2013-02-24 04:46:39
【问题描述】:
我正在使用 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”'填写字段。
这不是一个太复杂的表单,所以如果可以避免的话,我不想引入一些新的验证层。我不介意有一个验证帖子。
谢谢,丹
【问题讨论】:
-
请在下面标记正确的回答。谢谢。
标签: asp.net-mvc-4 knockout.js validation asp.net-mvc-viewmodel