我有这样的模型(简化)
public class User
{
[Required]
public string UserName { get; set; }
// Other fields
}
一个带有淘汰赛的 MVC 剃刀视图,viewModel
如下所示:
@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 中启用)。是淘汰赛破坏了这一天(尽管所有绑定都工作得很好?还是我正在看但没有看到的东西?
帮助高度赞赏!