很抱歉,这一系列的文章,因为图片比较多。
转贴比较麻烦,所以劳烦您到我的网站去浏览。
实战ASP.NET MVC 1.0 #1,我的第一支MVC程序,展现所有数据(主细表的Master)
http://www.dotblogs.com.tw/mis2000lab/archive/2009/08/10/mvc_1_list_all.aspx
ASP.NET案例精编——适用于VS 2005/2008(配光盘)
实战ASP.NET MVC 1.0 #2,主细表(Master-Detail)的Detail部份
http://www.dotblogs.com.tw/mis2000lab/archive/2009/08/10/mvc_2_detail.aspx.aspx
实战ASP.NET MVC 1.0 #3,新增一笔资料(Create / Add)
http://www.dotblogs.com.tw/mis2000lab/archive/2009/08/12/mvc_3_add.aspx.aspx
这一系列的文章,希望给我的读者作为课后补充。
一本好书,应该有源源不绝的「售后服务」 ---- 我提供许多范例让大家持续的练习与前进。
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
...........................................................................................................................
VS 2008 (SP1)那时的 MVC1.0,与目前 VS 2010内建的 MVC2.0版略有差异。
倘若您前三篇文章 (for MVC 1.0)遇见问题,可以参阅底下这篇文章。为您解说以上范例的差异之处。
并且提供范例下载(for VB语法)。
实战ASP.NET MVC #4,将范例修改成MVC 2.0版(Only for VS 2010/ 下集 补充习题)
http://www.dotblogs.com.tw/mis2000lab/archive/2010/05/26/mvc_20_sample_download.aspx
随着 VS 2010与 .NET 4.0上市,内建 MVC 2.0。
书本与先前的范例,大致OK。但有些细节需要修改。
本范例仅限用在 VS 2010上面
例如:画面(View)的部分,跟 MVC 1.0不同。
而 /Controllers/HomeController.vb里面,有一列程序代码需要修改。
MVC 2.0 for VS 2010 的写法有改变:
------------------------------------------------------------------------------------
' == 第二个Edit Function,修改完成,确定要在数据表里面更新这笔数据,就会执行这一段。
' POST: /Home/Edit/5
<AcceptVerbs(HttpVerbs.Post)> _
Function Edit(ByVal testToEditAs test) As ActionResult
......省略......
If NotModelState.IsValid Then
Return View(originaltest)
End If
'== 重点!! ==
'== MVC 1.0 for VS 2008 SP1使用的旧语法。
_test_db.ApplyPropertyChanges(originaltest.EntityKey.EntitySetName,testToEdit)
'== MVC 2.0 for VS 2010 请改写如下:
_test_db.ApplyCurrentValues(originaltest.EntityKey.EntitySetName,testToEdit)
_test_db.SaveChanges()
......省略......
End Function
实战ASP.NET MVC 2.0 #5,删除一笔记录
http://www.dotblogs.com.tw/mis2000lab/archive/2010/10/28/mvc_5_delete.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()
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文章都收录在此,