我有这样的模型(简体)与淘汰赛ASP.NET MVC剃刀形式不会验证
public class User
{
[Required]
public string UserName { get; set; }
// Other fields
}
与淘汰赛
viewModel
的MVC Razor视图,看起来像这样:
@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中启用)。难道淘汰赛那废墟天(尽管所有的绑定工作完全正常,抑或是一些我在看,并没有看到?
帮助不胜感激!