【发布时间】:2011-09-08 04:35:18
【问题描述】:
我已经尝试这样做了好几个月,好几个月,好几个月,而且 个月。我真的因为试图让 Knockout 为我工作而流下了眼泪。
我有一些帖子可以追溯到去年试图做到这一点。一世 只是根本无法使用淘汰赛和 asp.net 进行验证 mvc.
如果我输入 $.validator.unobtrusive.parse("#__frmAspect"); 行,我
获得验证,但随后它不服从提交处理程序。如果我
把它拿出来,它服从提交处理程序,但它没有得到任何
验证。
这是我的代码 - 全部。 (我认为)
主视图
编辑器视图
查看模型
控制器和模型绑定器
HTML 输出
HtmlTags 类
助手
我已经坚持了 8 个月。任何人都可以
请帮我?我想要的只是将数据提交回服务器。一世
不想要ajax,我不想要回调。我不想要任何花哨的东西。
我只想在正确后将我的JSON 模型发送回服务器
客户端验证,并让它获取数据。这就是我想要的。我愿意
不想使用$.ajax 方法。我有我想做的理由
这样,它们与问题无关。
对 RP Niemeyer 的回应
是的,成功了!!!!!!!!!哦,我的上帝。我欠你的,过去 8 个月 我生命中的。我想给你寄一个含有原始卡路里的芝士蛋糕 品味和互联网。
我觉得我可以从这个问题的沮丧中冲出屏幕 让我。如果这个问题听起来很粗鲁,我很抱歉,但在哪里 我在网上见过这种东西。我确定任何其他开发人员 能够理解一个看似不存在的问题的挫败感 有答案。
我不知道你是怎么得出这个结论的,我不明白 正是它起作用的原因。
我用对象实例化视图模型尝试了同样的事情(其中 视图模型不是它自己的对象,而是另一个对象的实例) 它没有用。换句话说,如果我这样做..
var aspect = function () {
this.Id = ko.observable();
// other variables, using ';' and 'this' keyword
this.Save = function() {
alert('We got to the save function');
}
}
var viewModel = new aspect();
ko.applyBindings(viewModel, $("#__frmAspect")[0]);
// attach the jquery unobtrusive validator
$.validator.unobtrusive.parse("#__frmAspect");
// bind the submit handler to unobtrusive validation.
$("#__frmAspect").data("validator").settings.submitHandler =
viewModel.Save;
这种方法不起作用。 我能麻烦您向我解释一下有什么不同吗?为什么?我是 完全迷失了。
【问题讨论】:
-
我没有查看所有代码,但我认为您需要添加 return true;到方法的最后: submitHandler: function () { viewModel.Save();返回真; }
-
它甚至从来没有命中那部分代码。我可以在那里运行警报,它甚至永远不会被触发。
标签: json asp.net-mvc-3 jquery-validate knockout.js