欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

第二篇:基于ASP.NET MVC2 創建第一個簡單頁面

系統 2233 0

摘要
?????
本文首先一步一步完成 Demo 的第一個頁面 —— 首頁。然后根據實現過程,說明一下其中用到的與 ASP.NET MVC 相關的概念與原理。

讓第一個頁面跑起來
????? 現在,我們來實現公告系統中的第一個頁面 —— 首頁。它非常簡單,只包括所有公告分類的列表,并且每個列表項是一個超鏈接。其中分類數據是用我們的 Mock 組件得到的。實現后界面如下:


第二篇:基于ASP.NET MVC2 創建第一個簡單頁面

?

????? 在開始之前,我們要刪幾個東西。因為默認情況下建立一個 MVC 項目時里面包含了幾個示例頁面,我們要做的就是:
????? 1.
Controllers 文件夾下所有文件刪除。
????? 2.
Views 文件夾下除了 Shared 文件夾和 Web.config 外的所有文件刪除,然后將 Shared 文件夾里面的文件刪除。
?????
完成以上幾步后,就可以開始實現第一個頁面了。

實現控制器
????? Controllers 文件夾下新建一個文件,類型選擇“ MVC Controller Class ”,名字命名為 HomeController.cs 。這就是一個控制器類。然后我們為它編碼,具體代碼如下:
HomeController.cs:

?

C#代碼 復制代碼
  1. using ?System; ??
  2. using ?System.Collections.Generic; ??
  3. using ?System.Linq; ??
  4. using ?System.Web; ??
  5. using ?System.Web.Mvc; ??
  6. using ?System.Web.Mvc.Ajax; ??
  7. using ?MVCDemo.Models; ??
  8. using ?MVCDemo.Models.Interfaces; ??
  9. using ?MVCDemo.Models.Entities; ??
  10. ??
  11. namespace ?MVCDemo.Controllers ??
  12. { ??
  13. ???? public ? class ?HomeController?:?Controller ??
  14. ????{ ??
  15. ???????? public ?ActionResult?Index() ??
  16. ????????{ ??
  17. ????????????ICategoryService?cServ?=?ServiceBuilder.BuildCategoryService(); ??
  18. ????????????ViewData[ "Categories" ]?=?cServ.GetAll(); ??
  19. ???????????? return ?View( "Index" ); ??
  20. ????????} ??
  21. ????} ??
  22. }??
    using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using MVCDemo.Models;
using MVCDemo.Models.Interfaces;
using MVCDemo.Models.Entities;

namespace MVCDemo.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ICategoryService cServ = ServiceBuilder.BuildCategoryService();
            ViewData["Categories"] = cServ.GetAll();
            return View("Index");
        }
    }
}

  

?

?


?????
直觀看來,這個類不是很復雜。它首先繼承了 Controller 類。 Controller 類是 ASP.NET MVC 框架中提供的一個控制器積累,所有我們自定義的控制器類都要繼承此基類。然后這個類中有一個 Index 方法,返回值類型是 ActionResult
?????
這里對其中涉及到的概念簡單解釋一下。首先,控制器類可以說是 ASP.NET MVC 的核心類,因為它將處理一切請求,并處理所有頁面轉發等表示邏輯,這也是使用了 ASP.NET MVC 后與傳統 ASP.NET 應用最大的差別。在傳統模式下,一個用戶請求的 url 將對應一個 aspx 文件,而在 ASP.NET MVC 下,一個用戶請求對應某個控制器類中的一個方法,而這個方法,就叫做一個 Action 。至于如何對應的,則是通過對 url 的解析。
?????
例如,在傳統情況下, http://www.my400800.cn/index.aspx 表示請求網站根目錄下的 Default.aspx 文件。而現在, url 可能變成了這種樣子: http://blog.my400800.cn/北京400電話申請/1 。這個意思就是,請求名叫 HomeController 控制器類下的 Index 方法。一般地,默認情況下,請求 url 的格式為 http://localhost/{ControllerName}/{ActionName } 。其中 {ControllerName} 是控制器類名“ Controller ”前的部分, {ActionName} 就是方法名。
?????
當然,這種映射規則是可以更改的,而且請求 Action 時也可以傳遞參數,但這些都是后話,以后再慢慢討論。

?????
下面再深入 Index 方法,看看這個 Action 都做了什么。它首先調用了業務邏輯組件(當然,是 Mock 的),然后將 GetAll 返回的公告分類數據賦予 ViewData["Category"] ,最后調用 View() 方法返回一個 ActionResult ViewData 是什么呢?你可以把他理解成一個關聯數組,它保存需要傳給視圖的數據。而 View Controller 類的一個方法,它返回一個 ActionResult 實例。這樣說可能有點抽象,其實直觀就是將某個視圖(一般就是一個 aspx 文件)呈現到瀏覽器中。那么如何知道呈現哪一個視圖呢?默認情況下, View 方法會到網站的 Views 文件夾下的與控制器類同名的文件夾下尋找與 Action 方法同名的視圖。例如, HomeController Index 方法就會尋找 Views/Home/Index.aspx ,如果找不到,就會到 Shared 下尋找,再找不到就報錯了。當然,你也可以給 View 方法傳遞一個字符串參數,表示視圖名稱。

實現視圖
????? 上文說到,當請求 http://localhost/Home/Index 時, HomeController Index 方法會被調用,而 Index 方法最后要呈現 Views/Home/Index.aspx 視圖,所以,我們要在 Views 文件夾下建立一個 Home 文件夾,然后再新建一個 Index.aspx 視圖。如果您使用的是 VS2008 SP1 ,那么建立視圖非常方便,只要在 Home 文件夾下右鍵單擊,選 Add--->View ,然后指定視圖名就可以了。如果不是 SP1 的,就新建一個 Item ,類型選擇“ MVC View Page ”。建立好的視圖其實就是一個 aspx 頁面,但是其繼承了 View 。這也是一個基類,所有視圖需要繼承它。
?????
下面給出 Index.aspx 的代碼:
Index.aspx:

?

C#代碼 復制代碼
  1. <%@?Page?Language= "C#" ?AutoEventWireup= "true" ?CodeBehind= "Index.aspx.cs" ?Inherits= "MVCDemo.Views.Home.Index" ?%> ??
  2. <%@?Import?Namespace= "MVCDemo.Models.Entities" ?%> ??
  3. ??
  4. <!DOCTYPE?html?PUBLIC? "-//W3C//DTD?XHTML?1.0?Transitional//EN" ? "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > ??
  5. ??
  6. <html?xmlns= "http://www.w3.org/1999/xhtml" ?> ??
  7. <head?runat= "server" > ??
  8. ????<title></title> ??
  9. </head> ??
  10. <body> ??
  11. ????<%?List<CategoryInfo>?categories=ViewData[ "Categories" ]? as ?List<CategoryInfo>;?%> ??
  12. ????<div> ??
  13. ????????<h1><A?href= "http://www.my400800.cn" >400電話</A> ??
  14. MVC公告發布系統</h1> ??
  15. ????????<ul> ??
  16. ????????????<%? foreach ?(CategoryInfo?c? in ?categories) ??
  17. ???????????????{ ??
  18. ????????????????????%> ??
  19. ????????????<li><%=?Html.ActionLink(c.Name,? "List/" ?+?c.ID,? "Announce" )?%></li> ??
  20. ????????????<%?}?%> ??
  21. ????????</ul> ??
  22. ????</div> ??
  23. </body> ??
  24. </html>??
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MVCDemo.Views.Home.Index" %>
<%@ Import Namespace="MVCDemo.Models.Entities" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <% List<CategoryInfo> categories=ViewData["Categories"] as List<CategoryInfo>; %>
    <div>
        <h1>
    
      
        400電話
      
    
    
MVC公告發布系統</h1>
        <ul>
            <% foreach (CategoryInfo c in categories)
               {
                    %>
            <li><%= Html.ActionLink(c.Name, "List/" + c.ID, "Announce") %></li>
            <% } %>
        </ul>
    </div>
</body>
</html>

  

?

?


?????
大約分析一下。剛才說過, Index 這個 Action 最后呈現這個 aspx 作為視圖,而且 ViewData 中包含了要給視圖傳遞的數據。在那里,我們將所有公告類別數據放在 ViewData["Categories"] 中。這里可以看到,我們將這些數據取出,并用來呈現頁面。至于那個 Html.Action ,這里先不細說。你只要知道,這個方法可以生成一個鏈接,其中第一個參數是鏈接文字,第二個是要鏈接到的 url Action 名,第三個是要鏈接到的 url 的控制器名。關于這些,我們以后細細討論。
?????
運行這個例子,并將請求 url 定位到 Home/Index ,就可以看到運行效果。
?????
你可能會發現,不需要指定 Home/Index ,在輸入根目錄后就直接呈現了這個頁面。其實這是因為在默認的路由配置里, Home Index 是默認的控制器名和 Action 名。以后我們將會討論路由問題。

小結
????? 通過上面的過程,我們第一個 ASP.NET MVC 頁面已經能呈現出來了。而且不單純只是一個頁面,其中還呈現了業務邏輯組件返回的數據。
?????
也許,您對其中許多地方還有困惑。不要著急,在下一篇中,我們做這個系統的步伐先

來自: http://ljl-xyf.iteye.com/blog/

第二篇:基于ASP.NET MVC2 創建第一個簡單頁面


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 三级三级三级a三级三级 | 久久综合一区二区三区 | 日韩av片免费播放 | 亚洲精品免费观看 | 天天干天天插天天 | 久草免费色站 | 国产精品女A片爽爽波多洁衣 | 免费看搡女人无遮挡的视频 | 亚洲高清视频一区 | 亚洲国产二区 | 国产色网址 | 精品国产成人在线 | 亚洲欧洲av在线 | 欧美 日韩 国产 一区 | 三上悠亚2022最新新作番号 | 日韩精品第二页 | 亚洲第一精品福利 | 欧美日韩一区二区视频在线观看 | 亚洲国产精品91 | 爽毛片 | 国产成人影院 | 欧美一级二级三级 | 91久久精品一区二区二区 | 日日干干 | 午夜视频直播 | 日韩精品一区二区三区中文 | 亚洲区一 | 黄色片视频免费看 | 欧美成人精品一区二区三区 | 欧美激情免费观看一区 | 亚洲国产精品网站 | 久草视频免费看 | 国产精品视频一区二区三区不卡 | 亚洲六月丁香色婷婷综合久久 | 99精品视频免费观看 | 日韩在线 在线播放 | 成人黄色小视频网站 | 精品成人免费 | 91视频无限看 | 青娱乐免费视频在线观看 | 99精品一区二区免费视频 |