下頁小希學MVC5+EF6.2 學習記錄一

来源:http://www.cnblogs.com/isking/archive/2017/11/08/7805164.html
-Advertisement-
Play Games

目的:1 學習mvc+ef 2 寫下日記也是對自己的督促 第0課 從0開始 ASP.NET MVC開發模式和傳統的WebForm開發模式相比,增加了很多"約定"。 直接講這些 "約定" 會讓人困惑,而且東西太多容易忘記。 和微軟官方教程不同,筆者儘量不用腳手架,從空白框架開始,一步一步添加功能,每次 ...


目的:1 學習mvc+ef

   2  寫下日記也是對自己的督促

第0課 從0開始

ASP.NET MVC開發模式和傳統的WebForm開發模式相比,增加了很多"約定"。

直接講這些 "約定" 會讓人困惑,而且東西太多容易忘記。

和微軟官方教程不同,筆者儘量不用腳手架,從空白框架開始,一步一步添加功能,每次添加的東西剛好夠用,讓大家能真正能用起來,理解每一個過程。

文章提綱

  • 概述
  • 核心概念介紹
  • 從空白開始,建立一個基本框架詳細步驟

概述

  1. 本系列文章及文章中的例子主要基於微軟官方文檔
  2. 使用工具 : VS2013 + MS SQL 2012
  3. 開始主要講解MVC + EF搭配使用,後續同樣也會提供MVC + ADO.NET的實現方案

核心概念介紹

MVC,Model – View – Controller 的簡寫

Model 封裝業務邏輯相關的數據及對數據的處理方法

View 向用戶提供交互界面

Controller 負責控制Model和View

看下麵這張圖。目前只要理解這一個概念就可以了,下麵就開始建一個空框架,從做中學。

 

從空白開始,建立一個基本框架詳細步驟

  1. 新建項目

 

 

NOTE:模板要選Empty,如果直接選MVC會產生多餘代碼。

NOTE:上圖方框處正好對應於M, V, C

到此為止,就建立了一個最基本的MVC解決方案,基本是空的。

我們簡單介紹下其中的RouteConfig.cs文件

打開Global.asax, 註意到在程式啟動的時候註冊了路由規則,如下方框處。

下麵我們就看下具體的路由規則。打開RouteConfig.cs文件

註意到裡面有個靜態方法,這就是映射路由的控制,這個方法定義了路由規則。

其中:url: "{controller}/{action}/{id}"定義了URL的格式。

後續會結合實際的URL地址來講解。

 

  1. 添加一個示例

先不管Model, 我們先創建Controller和View

  1. 添加Controller

右鍵Controllers文件夾,按圖示添加。

控制器必須以Controller結尾(這是ASP.NET MVC的一個約定)。

後續文章會講用戶登錄的例子,所以這裡先建一個AccountController.

添加後會發現多了下圖方框處的類和文件夾。

我們打開新建的AccountController.cs看下,自動生成了一個方法

public ActionResult Index()

{

return View();

}

我們稱這個Index為一個Action,返回類型為ActionResult.

可以看到,這個Action返回了一個View, 我們現在來建立這個View

  1. 添加View

添加View有兩種方法,一種是直接在Views文件夾下添加(右鍵ViewsàAccount文件夾)

另外一種是通過Controller中的Action來添加。這次我們採用後一種方法。

打開AccountController, 右鍵Index方法,按圖示添加。

這樣就添加了一個和特定的Controller和Action(這裡指AccountController和Index)相對應的View(ViewsàAccountàIndex.cshtml)

 

這個View就是最終顯示的前端頁面,我們在Body裡面添加一行字。

右鍵Index.cshtml,在瀏覽器中查看可以看到熟悉的HTML界面了。

註意瀏覽器中的地址 xx/Account/Index

這個地址與開頭的路由規則(url: "{controller}/{action}/{id}")就對應了起來,應該很容易理解吧。

 

典型的一個執行過程。

  1. 網址路由比對
  2. 如成功,執行相應的Controller與Action
  3. 執行相應的View並返回結果

記住這個過程。後面的過程都會在這個簡單的過程中進行擴展。

 

總結

MVC比之前的WebForm開發方式做了很大改變,分離更徹底。

本次文章主要是讓大家建立ASP.NET MVC的基本觀念。

下篇文章主要介紹View的UI設計,介紹一些重點的HtmlHelper, 從前端開始容易看到效果。

後續所有的文章都會以這個示例進行擴展,有問題歡迎大家評論:)

 

哈哈有copy成分在內

原著:五色令人目盲   MVC5+EF6 入門完整教程1 :從0開始


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [20171106]配置客戶端連接註意.txt--//在配置客戶端連接時一般建議使用Net Manager工具,windows下調用執行Net Manager.--//linux下執行 netmgr,這樣能一定程度避免copy & paste的 錯誤.--//我這裡想說的是在連接類型選擇上一定要註意 ...
  • Oracle 11g中有個新特性:新增了一個參數: ‘‘deferred_segment_creation’’:意思是段延遲創建,預設是True。 參數為True的話,你新建張table1表,並且沒有插入數據,oracle不會向這個表分配extent,也就是不占用空間,也不分配segment,所以表 ...
  • 測試代碼: 效果: 對checkedComboBoxEdit的多值進行SQL查詢時,查詢中使用IN語句,IN裡面第一個條件後面的所有條件的前面都會多出一個空格,導致查詢不正確 需將空格去掉再傳入SQL查詢: ...
  • 解決方案中的數據層項目最初使用的是oracle 11g + ef5 創建的實體模型,在分頁時遇到了skip參數為0報錯的問題,沒有找到相關資料。 於是決定升級到ef6,在oracle官網中得知,Oracle Data Provider for .NET in ODAC 12c Release 3 開 ...
  • 規劃許可權管理至少實現菜單許可權、界面許可權、動作許可權(按鈕)、服務許可權。 研究如何實現數據許可權等細粒度許可權。 (1)系統菜單管理 EF架構~性能高效的批量操作(Insert篇) ...
  • 當我第一次添加滾動條時候,我發現滾動條總是跑向上方,經過研究 解決方案如下: this.textBox1.Focus(); 獲取焦點 this.textBox1.Select(this.textBox1.textLength,0); 選擇到最後一行文本 this.textBox1.ScrollToC ...
  • Problem Description potato老師雖然很喜歡教書,但是迫於生活壓力,不得不想辦法在業餘時間掙點外快以養家糊口。“做什麼比較掙錢呢?篩沙子沒力氣,看大門又不夠帥...”potato老師很是無奈。“張藝謀比你還難看,現在多有錢呀,聽說還要導演奧運開幕式呢!你為什麼不去娛樂圈發展呢? ...
  • 主要改動部分: /// <summary> /// 6.創建工廠方法模式(抽象工廠:介面) /// </summary> interface IFactory //父介面(父類工廠) { /// <summary> /// 此父介面提供一個無參的函數方法 /// </summary> /// <re ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...