Co próbuję zrobić: Spróbuj usunąć rekord za pomocą "właściwego" usunięcia HTTP.Problemy z prawidłowym usuwaniem HTTP za pomocą Ajax.ActionLink
Kod Kontroler:
[HttpDelete]
public void DeleteRun(int RunId)
{
repository.RemoveEntry(RunId);
}
Razor Widok:
@Ajax.ActionLink("Delete","DeleteRun",new {RunId = run.RunId},
new AjaxOptions() { Confirm = "Are you sure you want to delete this entry?",
HttpMethod = "DELETE",
OnComplete = string.Format("DeleteRunInTable({0})",run.RunId)
})
JavaScript (w osobnym dołączonego pliku):
function DeleteRunInTable(RunId) {
$("tr[data-runid=" + RunId).remove();
}
link metoda actionlink tworzy:
<a data-ajax="true" data-ajax-complete="DeleteRunInTable(11)" data-ajax-confirm="Are you sure you want to delete this entry?" data-ajax-method="DELETE" href="/Runs/Delete/11">Delete</a>
Nie jestem pewien, czy część javascript działa jeszcze, ale nie martwię się o to. Próbujesz zrobić to krok po kroku :). Teraz działa po prostu jak tradycyjny tag, a po kliknięciu linku po prostu wykonuje żądanie GET z href. Oczywiście dostaję błąd 404 z powodu [HTTPDelete] i umieszczam na moim kontrolerze. Jestem całkiem nowy w tworzeniu stron internetowych, więc jestem pewien, że istnieją inne sposoby w javascript lub jquery, aby zrobić to samo, ale robię to, co wiem w tym momencie.
Dzięki za odpowiedź ... Nie faktycznie usunąłem je. Myślałem, że nie są potrzebne. Myślałem, że ajax.actionlink użyje jquery. Czy się mylę? Jeśli dobrze pamiętam na pluralsight, to oglądałem jeden z filmów z K Scottem Allenem i on skasował oba skrypty ajaxowe ajaxów, gdy korzystał z ajax.actionslink. Jestem całkiem początkującym w tym, więc może actionlink używa skryptów ajaxowych Microsoftu w niektórych przypadkach, aw innych przypadkach nie. Nie jestem pewien :) – coding4fun
To była moja wina. Skrypty ajax ajax, które nie są potrzebne, pojawiają się. Brakowało mi jednego skryptu na stronie, o którym nie wiedziałem: jquery.unobtrusive-ajax.min.js. Prawdopodobnie moim następnym pytaniem będzie prawdopodobnie, jeśli jest dobry sposób, aby stwierdzić, kiedy brakuje skryptu na stronie zamiast go (nie działa): P. – coding4fun
ahh fajne, miałem wrażenie, że to brakujący skrypt ... po prostu nie był właściwy :) Zaktualizowałem swoją odpowiedź, aby odzwierciedlić poprawny skrypt na wypadek, gdyby przyszli użytkownicy mieli ten sam problem i nie przeczytali komentarze. – lomaxx