Hỏi về ASP.NET Core API

Chào mọi người, em có một câu hỏi:
Em có một model:

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; }

Và giờ em muốn bind cái isCompleted vào một cái button sao cho khi nhấn thì nó sẽ thay đổi giá trị.
Em đang thử với AJAX như thế này:

$(document).ready(function () {
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);
    });
}

})

Nhưng em cũng muốn là thay đổi button từ thế này:

<button id="ButtonComplete" href="#" onclick='CompleteTodo(@item.Id,@item.isCompleted.ToString().ToLower())' class="waves-effect waves-light blue btn">Completed</button>

Sang thế này:

<button id="ButtonComplete" href="#" onclick='CompleteTodo(@item.Id,@item.isCompleted.ToString().ToLower())' class="waves-effect waves-light green btn">NotCompleted</button>

Một cách luân phiên mà không phải reload lại cả trang, vậy em phải làm sao ạ? Em cảm ơn

Ý em là khi click vào button thì cái text của button đổi từ “Completed” sang “NotCompleted” và ngược lại?

Nếu như vậy thì chỉ cần thêm dòng: $("#ButtonComplete").text('NotCompleted'); vào trong cái if (isCompleted === true) và ngược lại trong cái else thôi

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?