Вы можете использовать метод подтверждения :
<input type="checkbox" onclick="if (confirm('Are you sure?')) { window.location.href = '@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })'; }" />
или более ненавязчивым способом с помощью jquery:
<input type="checkbox" id="complete" name="complete" data-url="@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })" />
, а затем в отдельном файле JavaScript:
$(function() {
$('#complete').click(function() {
if (confirm('Are you sure?')) {
window.location.href = $(this).data('url');
}
});
});
Также я настоятельно рекомендую вам использовать другой глагол, нежели GET, для действий контроллера, которые изменяют состояние на вашем сервере, например помечают задачу как выполненную. PUT, POST и DELETE - хорошие кандидаты. В вашем случае, поскольку вы модифицируете существующий элемент, глагол POST кажется наиболее естественным.