您的位置:首页 > 编程语言 > ASP

实战ASP.NET MVC 1.0 #1,我的第一支MVC程序,展现所有数据(主细表的Master)

2010-11-02 13:09 561 查看

实战ASP.NET MVC 1.0 #1,我的第一支MVC程序,展现所有数据(主细表的Master)

http://www.dotblogs.com.tw/mis2000lab/archive/2009/08/10/mvc_1_list_all.aspx

看了再多的理论,都不如自己动动手

亲自写一支程序,从"做中学",才是王道!

微软的官方网站上(http://www.asp.net/mvc/),就有很多范例了,

这次的范例,是从 http://www.asp.net/learn/mvc/tutorial-21-vb.aspx 这个范例小改而来。

如果以下说明,尚有不详细的地方,建议您以原厂文件为准。

=======================================================================

以下的范例,是服务本书读者,因此采用与本书的 test Table相同的作法。

在学习这个范例之前,请您务必学习过 ADO.NET Entity,才能衔接下去。

请看:[习题]ADO.NETEntity Framework作一个主细表(Master-Detail)范例

=======================================================================

第一,环境设定。

需要安装 .NET 3.5与 VS 2008,并且双双升级到 SP1。

MVC大多是自己动手写程序,所以开发工具提供的帮助并不大。使用VWD Express版也可以做得到。

最后,请到微软的官方网站上(http://www.asp.net/mvc/),下载 ASP.NET MVC 1.0来安装 (档案很小,才2MB)

第二,我们将使用书上的test数据库来作为范例。

简体中文版,请看「ASP.NET案例精编(清华大学出版社)」

第三,打开VS 2008,新增"专案"

切记,请选Web」分类底下的「ASP.NET MVC Web Application 这是 MVC 1.0版喔




第四,一个MVC专案会是底下的样子



我们以前习惯的「网页(画面)」,目前都放在 /Views目录底下,扩展名仍然是 .aspx

/Controllers目录底下,会放置主要的程序。

/Content目录底下,则是放置一些共享的 CSS样式表。

我个人(不负责任)的感觉----

MVC式的开发方式,比较像是以前传统的 ASP/PHP/JSP开发方法,开发工具能提供的辅助,变得很少。

「所见即所得」的快速开发,似乎不太适合在 MVC上面实现。

传统html码 / CSS /JavaScript等等的熟悉度,再一次变得很重要啰。

对于 Class的撰写、数据库的操作、自己动手写程序....似乎又回复到原本的样子。

想要在画面上拉一拉,进行快速开发(这些初学者招数)在此都不管用啰! 我想,再也不会有人抱怨「ASP.NET好简单喔!拉一拉组件就会跑了」

第五,我们新增一个项目,实作ADO.NET Entity

这部份我不在赘述了。请看上一篇文章([习题]ADO.NETEntity Framework作一个主细表(Master-Detail)范例 )的说明。

各位只需要实作到.edmx」档案出现即可,记得存盘喔。




第六,开始写程序。

请到/Controller目录下,打开 HomeController.vb档案

底下只有两列程序,都是我们自己动手写上的

<HandleError()> _
PublicClass HomeController
Inherits System.Web.Mvc.Controller

Private_test_db As New testEntities() '==这行程序是自己撰写的==

'==========================================================
'== 前两个Function,是预设的MVC样板
Function Index() As ActionResult
'-- Index()是 HomeController 预设的Function

ViewData("Message")= "Welcome to ASP.NET MVC!"

Return View(_test_db.test.ToList()) '==这行程序是自己撰写的==

End Function

End Class

批注:

testEntities()是我们作 ADO.NET Entity的时候,自己命名的,请看第五步骤

.ToList()也不是我们写好的程序,我们是呼叫现成的来用。

第七,HTML画面设计

又回到以前 ASP的时代,我们把程序与html卷标混写在一起啰......

这就是 Inline Code......

01 <%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
02
03 <asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
04 Home Page
05 </asp:Content>
06
07 <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
08 <h2><%= Html.Encode(ViewData("Message")) %></h2>
09 <p>
10 To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NETMVC Website">http://asp.net/mvc</a>.
11 </p>
12
13 <!-- *******以下是自己写的程序******* -->
14 <h2>Index -- 资料列表</h2>
15
16 <p>
17 <!-- 自己写的超级链接 -->
18 <%=Html.ActionLink("Create New", "Create")%>
19 </p>
20
21 <table>
22 <tr>
23 <th></th>
24 <th>
25 Id(编号)
26 </th>
27 <th>
28 Title(标题)
29 </th>
30 <th>
31 Test_Time(日期)
32 </th>
33 <th>
34 Summary(摘要)
35 </th>
36 </tr>
37
38 <% For Each item In Model%>
39
40 <tr>
41 <td>
42 <!-- 自己写的超级链接 -->
43 <%=Html.ActionLink("Edit", "Edit", New With {.id = item.Id})%> |
44
45 <%=Html.ActionLink("Details", "Details", New With {.id = item.Id})%>
46 </td>
47 <td>
48 <%= Html.Encode(item.Id) %>
49 </td>
50 <td>
51 <%= Html.Encode(item.Title) %>
52 </td>
53 <td>
54 <%=Html.Encode(String.Format("{0:d}", item.test_time))%>
55 </td>
56 <td>
57 <%=Html.Encode(item.summary)%>
58 </td>
59 </tr>
60
61 <% Next%>
62 </table>
63
64 </asp:Content>

第八,完成了,且看程序的执行成果




绕了这一圈,做的范例又是我们很熟悉的 Master-Detail程序。

各位对于 MVC的感觉是如何?

我想:以传统的Web Form方式来作这功能,很多人都可以在短短 15分钟搞定。

说穿了,不过是 MasterPage + Login控件 + GridView(数据删除、修改、展现)/ SqlDataSource

但是,MVC的强弱,不该用这么小的程序来判别高低。

回头再看看这文章(ASP.NET MVC与Web From的使用时机?),

大家一定会发现Will与小朱两位前辈的话,很有道理!!

2010/5/26补充 :

上述文章,是在 VS 2008 SP1上面,搭配 ASP.NET MVC 1.0 Framework。
这部分的操作流程,比较细致。
我担心网页上说不清楚,各位可以参考我的新书

ASP.NET专题实务(II)-- 范例集与4.0新功能(文魁出版)

随着 VS 2010与 .NET 4.0上市,内建MVC 2.0
书本与先前的范例,大致OK。
但有些细节需要修改。修正后的范例请由此下载

实战ASP.NET MVC #4,将范例修改成MVC 2.0

我的网站,关于 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐