自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET MVC jQuery刪除鏈接

開發(fā) 后端
文章介紹了ASP.NET MVC中簡單的jQuery刪除鏈接。

在最近的一個(gè)帖子里,Stephen Walther指出了使用過一個(gè)超鏈接來刪除數(shù)據(jù)的危險(xiǎn)性。這篇文章對(duì)這方面問題進(jìn)行了很好的闡述。不過這類問題不僅僅局限于刪除操作。任何時(shí)候,你如果允許一個(gè)GET請(qǐng)求來修改數(shù)據(jù)的話,你就可能實(shí)在自找麻煩。這里有一個(gè)很久以前發(fā)生在BackPack身上的故事,你可以看一下就知道我的意思了。

之所以jQuery刪除操作值得我們格外注意是因?yàn)檫@是最常見的一個(gè)使用超鏈接修改信息的情況。如果你要修改一個(gè)產(chǎn)品記錄,那你可能會(huì)采用一個(gè)表格(form)。不過刪除操作通常只需要一個(gè)參數(shù)(就是要?jiǎng)h除記錄的id),而我們很容易在GET請(qǐng)求的URL中夾帶這個(gè)***的參數(shù)。

如果你在使用jQuery,一個(gè)很簡單的將任何超鏈接轉(zhuǎn)換成POST連接的方法是通過將以下代碼賦給onclick屬性值:

$.post(this.href); return false;

比如

  1. < a href="/go/delete/1" onclick="$.post(this.href); return false;">Delete< /a> 

這段代碼會(huì)向/go/delete/1發(fā)送一個(gè)POST請(qǐng)求而不是一個(gè)GET請(qǐng)求。當(dāng)然,你也需要在服務(wù)器端做必要的規(guī)定,在asp.net mvc中,這很簡單:

  1. [AcceptVerbs(HttpVerbs.Post)]public ActionResult Delete(int id) {  //Delete that stuff!} 

AcceptVerbs屬性規(guī)定了這個(gè)action方法只響應(yīng)POST請(qǐng)求,而GET請(qǐng)求將被忽略。

至此,你應(yīng)該很容易編寫專門用于delete鏈接的幫助函數(shù)了。我通常會(huì)編寫很專用的幫助函數(shù),比如:Html.DeleteProduct或Html.DeleteQuestion. 這里有我正在編寫的一個(gè)示例程序中的一段jQuery刪除功能的代碼:

  1. 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á)到目的。

希望這個(gè)帖子以及Stephen的帖子能幫助你編寫更安全的jQuery刪除操作。

【編輯推薦】

  1. ASP.NET關(guān)機(jī)代碼(Windows為本機(jī))
  2. ASP.NET QueryString亂碼解決問題
  3. ASP.NET畫面跳轉(zhuǎn)實(shí)現(xiàn)及其傳值問題解決方案
  4. ASP.NET Web應(yīng)用程序用戶操作信息描述類
  5. ASP.NET之父強(qiáng)烈推薦:ASP.NET AJAX著作
責(zé)任編輯:book05 來源: joycode
相關(guān)推薦

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-31 12:43:59

ASP.NET MVC

2009-08-18 17:50:37

ASP.NET MVC

2011-04-12 13:53:25

ASP.NET MVCjQuery

2009-07-29 09:04:36

JQRTEasp.net mvc

2009-07-23 15:44:39

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC

2009-07-23 14:31:20

ASP.NET MVC

2010-07-01 08:49:34

ASP.NET MVC

2012-12-24 10:00:07

ASP.NETjQueryAjax

2010-06-23 15:44:03

ASP.NET MVC

2009-07-24 11:33:12

MVC單元測試ASP.NET

2009-07-22 10:34:37

ActionInvokASP.NET MVC

2010-03-19 09:17:16

ASP.NET MVC

2009-07-22 13:08:55

拯救UpdatePanASP.NET MVC

2009-07-23 11:33:18

2009-04-01 12:00:43

ASP.NETMVC

2009-07-22 10:13:31

異步ActionASP.NET MVC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)