変更あなたが見..
h2>Details</h2>
<div>
<span>@Model.Customer.GetName()</span><br/>
<span>@Model.Customer.Landine</span><br/>
<span>Ticket Id: @Model.Id</span>
</div>
<div>
@foreach (var repair in Model.Repairs)
{
<div style="border-bottom: black">
<span>@repair.RepairType.Name</span><br />
<span> Repair Status: <span class="status">@(repair.IsDone ? "Done" : "Processing")</span></span>
@if (!repair.IsDone)
{
<span><input type="checkbox" class="status-checkbox" data-repair-
id="@repair.Id" />Mark as done</span><br />
}
<span>Location: @Model.Location.Name</span>
</div>
}
</div>
図であり、ここで私のjQueryの..です
@section Scripts{
<script>
$(document).ready(function() {
$('span .status-checkbox').on("click",
function() {
var checkBox = $("span .status-checkbox");
var status = checkBox.is(":checked");
var data = {
id: checkBox.attr("data-repair-id"),
isChecked: status
};
$.ajax({
url: '/Repairs/UpdateStatus',
type: 'POST',
data: data,
dataType: 'html',
success: function (data) {
$("span .status").html(data);
checkBox.hide();
},
error: function() {
alert("Problem updating repair status");
}
});
});
});
</script>
}
、ここでコントローラのコードがあります次のようにIDの小道具を追加してください:
@foreach (var repair in Model.Repairs)
{
<div style="border-bottom: black">
<span>@repair.RepairType.Name</span><br />
<span> Repair Status: <span id="[email protected]" class="status">@(repair.IsDone ? "Done" : "Processing")</span></span>
@if (!repair.IsDone)
{
<span><input type="checkbox" class="status-checkbox" data-repair-
id="@repair.Id" />Mark as done</span><br />
}
<span>Location: @Model.Location.Name</span>
</div>
}
そして、スクリプトの中で:あなたは、必要に応じて、いくつかの変更を加える必要がある場合がありますので
<script>
$(document).ready(function() {
$('span .status-checkbox').on("click",
function() {
var checkBox = $(this);
var status = checkBox.is(":checked");
var repairId = checkbox.data('repair-id');
var data = {
id: checkBox.attr("data-repair-id"),
isChecked: status
};
$.ajax({
url: '/Repairs/UpdateStatus',
type: 'POST',
data: data,
dataType: 'html',
success: function (data) {
$("#sp_"+repairId).html(data);
checkBox.hide();
},
error: function() {
alert("Problem updating repair status");
}
});
});
});
</script>
}
私はそれをテストしていません。
私は問題がこの 'var checkBox = $(" span .status-checkbox ");'行にあると思います。 'var checkBox = $(this);' – User3250
に変更してください。 '@ repair.Id'が正しく渡されているか確認してください。その価値はいつも同じだと私は思う。デバッグしてクロムをチェックインする。 – ViVi
'Model.Repairs'はコレクションなので、渡すと最初の値だけが' foreach'ループで反復されているように見えます。対応するチェックボックスの可視性を制御する 'Id'と' IsDone'の両方のプロパティをチェックしてください。 –