Asp.net核心绑定数据到按钮

时间:2016-08-26 05:31:52

标签: jquery ajax model asp.net-core asp.net-core-mvc

我正在学习ASP.NET核心MVC。 我有这个模型:

@echo off
setlocal EnableDelayedExpansion
set foo=bar
If ""=="" (
set foo=foobar
echo."No Expansion" %foo%
echo."Expanded    " !foo!
)
Pause

我想将public class Todo { public int Id { get; set; } [Required] public string Name { get; set; } [MaxLength(4096)] public string Content { get; set; } public bool isCompleted { get; set; } = false; public DateTime DateCreated { get; set; } = DateTime.UtcNow; public string UserName { get; set; } } 绑定到按钮上:当我点击该按钮时,它的值将被更改。目前我正在使用Ajax:

isCompleted

问题是,我无法在通话后更改按钮的类,我的按钮标记:

CompleteTodo = function (id, isCompleted) {
    if (isCompleted === true) {
        var data = "{\n  \"isCompleted\": false,\n}"
    } else {
        var data = "{\n  \"isCompleted\": true,\n}"
    }
    var settings = {
        "async": true,
        "crossDomain": true,
        "url": "http://localhost:3000/api/todos/"+id,
        "method": "PUT",
        "headers": {
            "content-type": "application/json",
            "cache-control": "no-cache",
        },
        "data": data
    }

    $.ajax(settings).done(function (response) {
        console.log(response);
    });
}

那我怎么能这样做?谢谢。

1 个答案:

答案 0 :(得分:0)

由于您使用服务器端绑定,因此如果没有刷新页面,按钮类就不会更改。 ajax完成后刷新页面:

$.ajax(settings).done(function (response) {
    console.log(response);
    location.reload(false);
});

或者使用javascript在客户端更改类(添加/删除)。

ps:确保在ajax调用item.isCompleted之后按预期更改。