Asp.net mvc 带自动更新的淘汰复选框绑定
我试图在某人更改以前绑定的复选框的状态时,使用新值更新服务器。 这就是我所拥有的: JSCRIPTAsp.net mvc 带自动更新的淘汰复选框绑定,asp.net-mvc,knockout.js,asp.net-web-api,Asp.net Mvc,Knockout.js,Asp.net Web Api,我试图在某人更改以前绑定的复选框的状态时,使用新值更新服务器。 这就是我所拥有的: JSCRIPT function JobViewModel() { var self = this; var baseUri = '/Api/Pedidos/'; self.TotalItems = ko.observable(@Model.TotalItems); self.AbreviaNome = ko.observable(@Model.A
function JobViewModel() {
var self = this;
var baseUri = '/Api/Pedidos/';
self.TotalItems = ko.observable(@Model.TotalItems);
self.AbreviaNome = ko.observable(@Model.AbreviaNome.ToString().ToLower());
self.AbreviaFantasia = ko.observable(@Model.AbreviaFantasia.ToString().ToLower());
self.update = function () {
alert('Boom');
$.ajax({
type: "PUT",
url: baseUri,
data: self.Job,
datatype: "json",
contenttype: "application/json"
})
.done(function (data) {
//handleSuccessFunctionHERE(data);
alert('Magic');
})
.error(function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
alert("fail");
});
};
}
function JobDetailsViewModel() {
var self = this;
var baseUri = '/Api/Pedidos/';
self.Job = new JobViewModel();
}
HTML
有什么想法吗?您应该为此使用
订阅,而不是onchange
处理程序。你提到你试过了,但是你订阅了AbreviaNome而不是AbreviaLogradouro 解决了问题,下面是绑定:
<label class="btn btn-primary " data-bind="css: {active:Job.AbreviaNome}">
<input type="checkbox" data-bind="checked: Job.AbreviaNome, event: {change: Job.update}" name="type" id="AbreviaNome">Nome/Razão</input>
</label>
诺姆/拉芒
不确定这是否是最好的方法,但它确实有效。修复了示例,因为您引用了我绑定的字段上的错误。请避免使用更改事件绑定。你不需要它。你应该以击倒的方式处理更改-使用订阅。我正在尝试,但它不起作用,没有失败,或者其他什么。当我在subscribe方法上设置断点时,它从不触发
<label class="btn btn-primary" data-bind="css: {active:Job.AbreviaNome }">
<input type="checkbox" data-bind="checked: AbreviaNome , click: Job.update" name="type" id="AbreviaNome "> Nome</input>
</label>
this.AbreviaNome.subscribe(function (newValue) {
alert('test');
}, this);
<label class="btn btn-primary " data-bind="css: {active:Job.AbreviaNome}">
<input type="checkbox" data-bind="checked: Job.AbreviaNome, event: {change: Job.update}" name="type" id="AbreviaNome">Nome/Razão</input>
</label>