您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何進(jìn)行ASP.NET MVC jQuery刪除操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在最近的一個(gè)帖子里,Stephen Walther指出了使用過一個(gè)超鏈接來刪除數(shù)據(jù)的危險(xiǎn)性。這篇文章對這方面問題進(jìn)行了很好的闡述。不過這類問題不僅僅局限于刪除操作。任何時(shí)候,你如果允許一個(gè)GET請求來修改數(shù)據(jù)的話,你就可能實(shí)在自找麻煩。這里有一個(gè)很久以前發(fā)生在BackPack身上的故事,你可以看一下就知道我的意思了。
之所以jQuery刪除操作值得我們格外注意是因?yàn)檫@是最常見的一個(gè)使用超鏈接修改信息的情況。如果你要修改一個(gè)產(chǎn)品記錄,那你可能會采用一個(gè)表格(form)。不過刪除操作通常只需要一個(gè)參數(shù)(就是要?jiǎng)h除記錄的id),而我們很容易在GET請求的URL中夾帶這個(gè)***的參數(shù)。
如果你在使用jQuery,一個(gè)很簡單的將任何超鏈接轉(zhuǎn)換成POST連接的方法是通過將以下代碼賦給onclick屬性值:
$.post(this.href); return false;
比如
< a href="/go/delete/1" onclick="$.post(this.href); return false;">Delete< /a>
這段代碼會向/go/delete/1發(fā)送一個(gè)POST請求而不是一個(gè)GET請求。當(dāng)然,你也需要在服務(wù)器端做必要的規(guī)定,在asp.net mvc中,這很簡單:
[AcceptVerbs(HttpVerbs.Post)]public ActionResult Delete(int id) { //Delete that stuff!}
AcceptVerbs屬性規(guī)定了這個(gè)action方法只響應(yīng)POST請求,而GET請求將被忽略。
至此,你應(yīng)該很容易編寫專門用于delete鏈接的幫助函數(shù)了。我通常會編寫很專用的幫助函數(shù),比如:Html.DeleteProduct或Html.DeleteQuestion. 這里有我正在編寫的一個(gè)示例程序中的一段jQuery刪除功能的代碼:
public static string DeleteAnswerLink(this HtmlHelper html, string linkText , Answer answer) { return html.RouteLink(linkText, "answer", new { answerId = answer.Id, action = "delete" }, new { onclick="$.post(this.href); return false;" });}
這個(gè)方法的優(yōu)點(diǎn)在于你可以充分利用現(xiàn)存的幫助函數(shù)而只需通過onclick屬性來增加最少量的額外內(nèi)容來達(dá)到目的。
上述就是小編為大家分享的如何進(jìn)行ASP.NET MVC jQuery刪除操作了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。