实战ASP.NET MVC 2.0 #5,删除一笔记录
http://www.dotblogs.com.tw/mis2000lab/archive/2010/10/28/mvc_5_delete.aspx
有读者来信询问:
ASP.NET MVC该怎么 "删除"一笔记录呢?
其实只要应用之前学过的 MVC技巧(新增、编辑与更新....等等),稍作变化一下,应该就能自己作得出来。
不过,我直接公布程序代码给您参考好了。
=======================================================================
之前介绍过的三篇文章,建议您阅读之后,再来进行下面的范例。
http://www.dotblogs.com.tw/mis2000lab/Tags/MVC/default.aspx
很多以前介绍过的步骤,我不会再赘述喔。
以下是采用 .NET 4.0 / VS 2010,MVC版本是 2.0
1). 首先,在 /Views/Home目录下,
在 HomeController.vb里面撰写 第一个Delete()function
'*******************************************
'** 删 除 **
'*******************************************
'-- Delete Function,点选这一笔纪录后,传回文章的 id值。先检视内容,确认后才删除。
'-- GET: /Home/Delete/5
Function Delete(ByValid As Integer) As ActionResult
Dim testToDelete = (From m In _test_db.test
Where (m.id = id)
Select m).First() '-- .First()传回第一个项目
Return View(testToDelete)
End Function
2). 完成后,新增一个 View画面
(这个动作,在前面的范例都示范过很多次了。书里面也有)
您可以发现这个 Delete.aspx的画面,原来是一个「删除之前,让您再一次作确认的画面」
必须按下画面里的「Submit」按钮,才会真正进行删除的动作。
这样的流程,跟前面学过的ASP.NET MVC「编辑与更新」、「新增」都一样。
也就是说: Delete() Function也是要作两次才行!!
3). 让我们回到 /Views/Home目录下,
在 HomeController.vb里面撰写第二个 Delete() function
' == 第二个 Delete Function,确定要在数据表里面删除这笔数据,就会执行这一段。
<AcceptVerbs(HttpVerbs.Post)>_
Function Delete(ByValtestToDelete As test) AsActionResult
Try
Dim testToDelete2= (From m In _test_db.test
Where (m.id = testToDelete.id)
Select m).First()
'== 重点!! ==
_test_db.DeleteObject(testToDelete2)
'-- 参考数据:http://msdn.microsoft.com/zh-tw/library/system.data.objects.objectcontext.deleteobject.aspx
_test_db.SaveChanges()
ReturnRedirectToAction("Index") '--Delete成功后,回到首页 Index.aspx
Catch
ReturnView()
End Try
End Function
最后的删除动作,因为 ASP.NETMVC使用了 Entity当作它的「M(Model)」
您可以在上一篇文章中,看到相同的作法。
请参阅:ADO.NET Entity入门的程序 #4(自己动手写)--数据新增、删除、修改(ObkectContext的 .SaveChange()方法)
这里有两篇文章,相当有帮助。
您要透过 ASP.NET MVC实作 数据管理(CRUD)各种功能,看了这两篇就对了!
http://ricardodsanchez.com/archive/2009/10/20/crud-operations-with-asp.net-mvc.aspx
我的网站,关于 ASP.NET MVC文章都收录在此,
实战ASP.NET MVC 1.0 #1,我的第一支MVC程序,展现所有数据(主细表的Master) (2010-11-02 13:09)
实战ASP.NET MVC 1.0 #2,主细表(Master-Detail)的Detail部份 (2010-11-02 13:14)
实战ASP.NET MVC 1.0 #3,新增一笔资料(Create / Add)(2010-11-02 13:20)
实战ASP.NET MVC #4,将范例修改成MVC 2.0版(Onlyfor VS 2010) (2010-11-02 13:25)
实战ASP.NETMVC 2.0 #5,删除一笔记录(2010-11-02 13:30)
....................................................................................................寄信给我 mis2000lab (at)雅虎.com.台湾 ........
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)