欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#中模型、視圖和控制器的示例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹C#中模型、視圖和控制器的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計、成都網(wǎng)站設計與策劃設計,會同網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:會同等地區(qū)。會同做網(wǎng)站價格咨詢:18980820575

示例 ASP.NET MVC 應用程序

  用以創(chuàng)建ASP.NET MVC Web程序的默認的 Visual Studio 模板包括一個極其簡單的示例程序,可以用來理解ASP.NET MVC Web程序的不同部分。我們在這個教程里就利用這個簡單程序吧。

  運行Visual Studio 2008, 選擇“文件”,“新建”(見圖1),用MVC模板創(chuàng)建ASP.NET MVC程序。在“新建項目”對話框中,在“項目類型(P)”(Visual Basic 或者C#)中選擇你喜歡的編程語言,并在“模板”下選擇 ASP.NET MVC Web Application 。點擊“確定”按鈕。

C#中模型、視圖和控制器的示例分析
圖1 新建項目對話框

  創(chuàng)建完新的 ASP.NET MVC 程序后, 出現(xiàn)Create Unit Test Project 對話框(見圖2). 這個對話框會在解決方案中為你創(chuàng)建一個單獨的用來測試你的ASP.NET MVC程序的項目。選擇選項 No, do not create a unit test project 并單擊 OK 按鈕。

C#中模型、視圖和控制器的示例分析
圖2 創(chuàng)建單元測試對話框

  ASP.NET MVC 程序創(chuàng)建完成。你會在解決方案資源管理器窗口中看到幾個文件夾和文件。特別是你會看到三個分別名為Models,Views和Controllers的文件夾。顧名思義,這三個文件夾包含了實現(xiàn)模型,視圖和控制器的文件。

  如果你展開Controllers文件夾,你會看到一個名為AccountController.cs和一個名為HomeControllers.cs的文件。展開Views文件夾,會看到三個分別名為Account,Home和Shared的子文件夾。展開Home文件夾,會看到兩個分別名為About.aspx和Index.aspx的文件(見圖3)。這些文件組成了包括默認ASP.NET MVC模板的示例程序。

C#中模型、視圖和控制器的示例分析
圖3 解決方案資源管理器窗口

  選擇“調(diào)試”,“啟動調(diào)試”運行示例程序。或者按F5鍵也可以。

  第一次運行 ASP.NET 程序時,會出現(xiàn)圖4所示的對話框,建議你啟動調(diào)試。 點擊“確定”按鈕程序就會運行起來了。

C#中模型、視圖和控制器的示例分析
圖4 調(diào)試未啟動對話框

  運行ASP.NET MVC 程序時, Visual Studio 會在瀏覽器運行你的程序。示例程序包括2個頁面:Index頁和About頁。程序首次啟動時,出現(xiàn)Index頁(見圖5)。你可以點擊程序右上方的菜單鏈接導航到About頁。

C#中模型、視圖和控制器的示例分析
圖5 Index 頁

  注意瀏覽器地址欄的URL,當點擊About菜單鏈接時,地址欄中的URL變?yōu)?/Home/About。

  關閉瀏覽器窗口回到 Visual Studio,你找不到路徑Home/About的文件。這個文件不存在,這怎么可能呢?

一個URL不等于一個頁

  生成傳統(tǒng)的ASP.NEW Web窗體程序或ASP程序時,一個URL對應一個網(wǎng)頁。如果向服務器一個名為 SomePage.aspx的頁面發(fā)起請求 ,那么磁盤里最好存在這么一個名為SomePage.aspx的頁面。如果 SomePage.aspx 文件不存在,將會得到一個丑陋的 404 – Page Not Found 錯誤。

  相反,生成 ASP.NET MVC 程序時,在你輸入瀏覽器地址的URL和你要在程序里找的文件之間并沒有對應關系。在

  ASP.NET MVC 程序中, 一個URL并不對應磁盤上的頁而是對應一個控制器action。

  在傳統(tǒng) ASP.NET 或者 ASP 程序中, 瀏覽器請求被映射到頁面。相反,在 ASP.NET MVC 程序中, 瀏覽器請求被映射到控制器action。 ASP.NET Web 窗體程序以內(nèi)容為中心。 相反,ASP.NET MVC 程序以程序邏輯為中心。

理解ASP.NET Routing

  瀏覽器請求通過一個名為 ASP.NET Routing 的ASP.NET 框架特性來獲得控制器action的映射。 ASP.NET Routing 被 ASP.NET MVC 框架用來對傳入控制器action的請求進行路由。

  ASP.NET Routing 用一個路由表來處理傳入的請求。當web程序第一次運行時這個路由表就會被創(chuàng)建。 它是在 Global.asax 文件中被創(chuàng)建的。默認的 MVC Global.asax 文件如代碼1所示。

代碼1 – Global.asax

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MvcApplication1
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );
        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

  ASP.NET 程序首次啟動時, Application_Start() 方法會被調(diào)用。 在代碼 1中, 此方法調(diào)用 RegisterRoutes() 方法創(chuàng)建默認路由表。

  默認路由表只包括一個路由。這個默認的路由將傳入的請求分為三段(一個URL段就是兩個斜杠間的任何東西)。第一段映射到控制器名,第二段映射到action名,最后一段映射到一個傳到action的名為Id的參數(shù)。

  例如,考慮以下URL:

  /Product/Details/3

  這個 URL 被解析為類似這樣的3個參數(shù):

  Controller = Product

  Action = Details

  Id = 3

  Global.asax 文件中定義的默認路由包括所有三個參數(shù)的默認值。默認的控制器是 Home, 默認的 Action 是 Index, 默認的 Id 是空字符串。心里想著這些默認值,思考一下下面的URL是怎么解析的:

  /Employee

  這個 URL 被解析成類似這樣的三個參數(shù):

  Controller = Employee

  Action = Index

  Id =

  最后,如果你不輸入任何URL(例如,http://localhost)就打開 ASP.NET MVC 程序的話URL就像這樣解析:

  Controller = Home

  Action = Index

  Id =

  這個請求就被路由到HomeController類的 Index() action 中。

理解控制器

  控制器負責控制用戶與MVC程序交互的方式。控制器包括了ASP.NET MVC程序的流控制邏輯。控制器決定當用戶發(fā)送一個瀏覽器請求時返回什么響應。控制器就是一個類(例如,一個Visual Basic或者C#類)。樣例 ASP.NET MVC 程序包括一個位于Controllers文件夾中名為 HomeController.cs 的控制器。 HomeController.cs 文件內(nèi)容轉(zhuǎn)載在代碼 2中。

代碼 2 – HomeController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Title"] = "Home Page";
            ViewData["Message"] = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            ViewData["Title"] = "About Page";

            return View();
        }
    }
}

  注意 HomeController 有兩個方法,名為Index() 和About().。這兩個方法對應由控制器暴露的兩個action。 URL /Home/Index 調(diào)用 HomeController.Index() 方法而URL/ Home/ About 調(diào)用 HomeController.About() 方法。

  控制器中的任何公共方法都被暴露為控制器action。對此你要特別小心。這意味著人們只要通過訪問互聯(lián)網(wǎng),在瀏覽器中輸入正確的URL,就可以調(diào)用控制器中的任何公共方法。

理解視圖

  由HomeController暴露的 Index() 和About() 這兩個action都返回一個視圖。視圖包括HTML標記和發(fā)送到瀏覽器的內(nèi)容。在ASP.NET MVC程序中視圖等同于一個頁面。你必須在正確的地方創(chuàng)建視圖。HomeController.Index() action 返回一個位于以下路徑的視圖:

  /Views/Home/Index.aspx

  HomeController.About() action 返回一個位于以下路徑的視圖:

  /Views/Home/About.aspx

  通常,如果你想為控制器action返回視圖,那么你需要在Views文件夾下創(chuàng)建一個與控制器同名的子文件夾。在此子文件夾內(nèi),你得創(chuàng)建一個與控制器action同名的 .aspx 文件。

  代碼3 中的文件包含 About.aspx 視圖。

代碼3 – About.aspx

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
    <h3>About</h3>
    <p>
        Put content here.
    </p>
</asp:Content>

  如果你忽略代碼3的第一行,視圖的其余部分包含了標準的HTML。你可以輸入任何你想要的HTML來修改視圖的內(nèi)容。

  視圖和ASP或ASP.NET Web窗體中的頁面很相似。視圖可以包含HTML內(nèi)容和腳本。你可以用你喜歡的編程語言寫腳本(例如,C#或Visual Basic .NET)。使用腳本來顯示動態(tài)內(nèi)容,例如數(shù)據(jù)庫數(shù)據(jù)。

理解模型

  我們已經(jīng)討論了控制器和視圖。最后一個話題就是模型了。什么是MVC模型?

  MVC 模型包含程序中的所有邏輯,而這些邏輯并不包含在視圖或控制器中。模型應該包含所有程序業(yè)務邏輯,驗證邏輯和數(shù)據(jù)庫訪問邏輯。例如,如果你用 Microsoft Entity Framework 來訪問數(shù)據(jù)庫,那么你要在Models文件夾中創(chuàng)建 Entity Framework 類 ( .edmx 文件) 。

  視圖應該僅僅包含生成用戶界面的邏輯??刂破鲬搩H僅包含返回正確視圖的最小邏輯或者將用戶重定向到其他action(流控制)。其它的任何事情都應該包含在模型中。

  通常,你應該為“胖”模型和“瘦”控制器而努力。控制器方法應該只包含幾行代碼。如果控制器action變得太“胖”的話,那么就應該考慮將邏輯挪出到Models文件夾中的一個新類中。

以上是“C#中模型、視圖和控制器的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)頁標題:C#中模型、視圖和控制器的示例分析-創(chuàng)新互聯(lián)
本文地址:http://chinadenli.net/article40/jjoeo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、小程序開發(fā)做網(wǎng)站、App開發(fā)網(wǎng)站維護、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
丁香六月啪啪激情综合区| 亚洲天堂精品1024| 欧美精品久久99九九| 成人国产激情在线视频| 精品国产亚洲免费91| 日本在线视频播放91| 四十女人口红哪个色好看| 日本高清视频在线播放| 超碰在线播放国产精品| 亚洲国产精品一区二区毛片| 国产又大又硬又粗又黄| 91超精品碰国产在线观看| 免费播放一区二区三区四区| 99久免费精品视频在线观| 日本国产欧美精品视频| 亚洲欧美日韩综合在线成成| 国产一区欧美一区日本道| 亚洲欧美日本国产不卡| 五月天丁香亚洲综合网| 99久久国产亚洲综合精品| 国内外激情免费在线视频| 91香蕉视频精品在线看| 青青操日老女人的穴穴| 青青操成人免费在线视频| 久久精品欧美一区二区三不卡| 日韩精品视频免费观看| 亚洲国产成人久久99精品| 国产精品涩涩成人一区二区三区| 亚洲国产中文字幕在线观看| 亚洲中文字幕日韩在线| 国产一区二区三区午夜精品| 久久成人国产欧美精品一区二区| 日韩一区欧美二区国产| 有坂深雪中文字幕亚洲中文| 国产精品久久香蕉国产线| 福利专区 久久精品午夜| 内用黄老外示儒术出处| 国产传媒免费观看视频| 欧美又大又黄刺激视频| 国产高清精品福利私拍| 神马午夜福利一区二区|