MIS2000 Lab. -- ASP.NET学习&分享 / ASP.NET案例精编(清华大学出版社)
您好,我来自台湾。很高兴与各位分享一些成果。希望对您有帮助。出版书籍是「ASP.NET案例精编 / 清华大学出版社」。

实战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

http://stephenwalther.com/blog/archive/2009/01/21/asp.net-mvc-tip-46-ndash-donrsquot-use-delete-links-because.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)

posted on 2010-11-02 13:30  MIS2000 Lab.  阅读(429)  评论(0编辑  收藏  举报


ASP.NET案例精编——适用于VS 2005/2008(配光盘)
 

当当网购买 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub