【发布时间】:2013-03-04 20:03:25
【问题描述】:
我有这样的模型(简化)
public class User
{
[Required]
public string UserName { get; set; }
// Other fields
}
带有淘汰赛viewModel 的 MVC 剃须刀视图如下所示:
@using (Html.BeginForm("MyAction", FormMethod.Post, new { id = "profileEditorForm" }))
{
@Html.ValidationSummary(false)
@Html.LabelFor(n => n.UserName)
@Html.TextBoxFor(n => n.UserName, new { data_bind = "value: UserName" })
@Html.ValidationMessageFor(n => n.UserName)
@* Other fields *@
<p>
<input type="submit" value="Save" alt="" title="" />
<a href="/">Cancel</a>
</p>
}
<script type="text/javascript">
$(function() {
var vm = new viewModel(@(Html.Raw(Json.Encode(@Model))));
ko.applyBindings(vm);
$("#profileEditorForm").validate({
submitHandler: function(form) {
alert('Validating ' + ko.toJSON(vm));
if (vm.save)
window.location.href = "/";
return false;
}
});
});
var viewModel = function(model) {
var self = this;
self.UserName = ko.observable(model.UserName);
// Other fields
self.save = function() {
alert('Saving ' + ko.toJSON(self));
}
};
};
</script>
我无法让它给我客户端验证,即使它通过验证功能(警报插入表明)然后直接进入保存并将无效的内容发回 MVC 操作。
您能否帮我在此表单上启用客户端验证(在 web.confir 中启用)。是 Knockout 破坏了这一天(尽管所有绑定都工作得很好?还是我正在看而没有看到的东西?
高度赞赏!
【问题讨论】:
标签: asp.net-mvc razor knockout.js validation