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

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

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


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

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