Sto cercando di passare a un'azione MVC inviando piuttosto che ottenere. (L'azione è una DELETE, e io non lo voglio raggiungibile con un link esterno.)Ajax.ActionLink non è distacco
Sto usando un link in una griglia generata da
Ajax.ActionLink("Remove", "Delete", new { saID = Model.Said, id = e.id }, new AjaxOptions { HttpMethod = "POST", Confirm = "Are you sure you want to delete this item?" })
che genera il seguente codice HTML:
<a href="/Equipment/Delete/102424/229933" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, confirm: 'Are you sure you want to delete this item?', httpMethod: 'POST' });">Remove</a>
Il mio problema è che quando faccio clic sul collegamento, raggiungo l'azione Elimina tramite GET anziché POST, E la finestra di dialogo di conferma non sta avendo luogo. Ho fatto ricerche su Google per diverse ore e continuo a farmi avvolgere attorno all'asse. Che cosa sto facendo di sbagliato?
Il vostro diritto: sto diventando "Sys.Mvc" non è definito - anche se ho incluso tutte e tre le file di script JS nel mio MasterPage (MicrosoftAjax, MicrosoftMvcAjax e jquery-1.4.1-vsdoc) Cos'altro devo fare per ottenere Sys.Mvc definito? –
@Dave - li stai includendo in questo ordine? 'Sys.Mvc' è definito in MicrosoftMvcAjax.js ma lo fa chiamando un metodo da MicrosoftAjax.js – tvanfosson
Questo sembra essere il problema. Quando ho collegato il fiddler ad esso, solo il primo (MicrosoftAjax.js) dei tre file di script stava caricando. Ho risolto il problema in modo che MicrosoftMvcAjax.js (che contiene la definizione di Sys.Mvc) si stava caricando, e ha funzionato e decollato - beh, sorta. Sto ricevendo la casella di conferma ora, ma non ricevo il mio modulo di cancellazione. Ma ci penserò domani. –