2二、ASP.NET MVC入門到精通——搭建項目框架

本系列目錄:ASP.NET MVC4入門到精通系列目錄彙總
html

前面的章節,說了ASP.NET MVC項目中經常使用的一些技術和知識點,更多的是理論上面的東西,接下來,我將經過一個簡單的OA項目來應用咱們以前涉及到的一些技術,爲了兼顧初學者,因此我儘可能把操做步驟說得足夠詳細。(原本想用VS2015來演示MVC5開發的,無奈家裏的筆記本是11年2月份的老爺機了,一直不曾捨得換,由於配置的緣故,筆記本不堪負重,難以安裝最新版本的開發工具,只裝了VS2012,固然,還有一個緣由就是如今公司也是使用VS2012和MVC4。spring

開發環境:win7 64bitVS2012sqlserver2008sql

使用框架:asp.net mvc4 EF5spring.net easyUI1.4x數據庫

1、新建空白解決方案架構

2新建解決方案文件夾mvc

新建解決方案文件夾能夠分類打包一些項目,讓整個項目變得更清晰。框架

 

Common:基礎架構、包含一些通用的組件,以及IOC容器asp.net

Repository:數據倉儲工具

Service:服務層(業務邏輯和API接口)sqlserver

UI:界面(MVC項目)

三、新建MVC項目

右鍵點擊UI文件夾,新建項目

 

 

爲了把控制器單獨做爲一個項目,這裏咱們刪除Controller文件夾

 

四、新建一個類庫,來做爲UI的業務邏輯層,仍是建在UI目錄下面

 

如今我忽然想改項目的名稱,把OA改成Web,這個時候,先在解決方案中直接重命名項目名稱,而後移除此項目,再去解決方案目錄下面找到該項目對應的文件夾OA,將文件夾名稱改成OA,最後從新添加項目的引用,就能夠了,OA.Logic改成Web.Logic也採用一樣的方式。

五、依次創建好其它項目,除了Web項目外,其它的均爲類庫項目,最終以下圖:

 

Web.Logic就至關於獨立的Controller項目

建立數據庫,請先下載sql腳本(下載地址:http://pan.baidu.com/s/1OLxQA),而後在sqlserver上面運行。此sql腳本是從網上下載的,是一個OA的數據庫。

6、在Model項目中,新建實體數據模型

 

 

7、修改配置文件

因爲Web項目中會用到全局的配置,因此把Model項目中的App.config中的配置複製到Web項目中的Web.config

 

八、添加項目之間的引用

Model

IDAL-->Model

DAL-->IDALModel

IBLL-->Model

BLL-->IBLLIDALModelDI

Web.Logic-->IBLLModelDI

Web-->Web.LogicModel

 右鍵單擊解決方案——項目依賴項,能夠查看項目之間的引用

9、新建控制器

既然Web.Logic類庫充當了獨立的控制器層,那麼先要添加System.Web.MvcSystem.Web的引用,從擴展裏面選擇的dll,是在C盤mvc的安裝目錄下面的dll,固然,你也能夠點擊瀏覽,指定你須要的dll,可是要注意版本。

 

咱們來新建一個Home控制器類,根據約定大於配置原則,咱們命名爲HomeController

代碼以下:

using System.Web;
using System.Web.Mvc; 

namespace OA.Logic
{
   public class HomeController:Controller
    {
       public ActionResult Index()
       {
           return View();
       }
    }
}

10、在Web-項目中新建視圖

Views中新建一個和控制器同名的文件夾Home,而後添加一個Index視圖

 

Index視圖代碼:

@{
    ViewBag.Title = "Index";
}
<h2>Hello world</h2>

將Web項目設置爲啓動項,Build解決方案,而後咱們運行看下效果

 

可能有些朋友會感受奇怪,我Web項目中都沒有任何控制器類,爲何我一塊兒動項目就能自動跳轉到咱們剛纔建立的Index視圖呢?

首先,咱們Web項目中的默認路由是   defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

而當Web啓動時,路由引擎會自動到Web項目中的bin目錄下面查找全部dll中繼承Controller的類,而後一一進行路由匹配。

因爲Web項目引用了OA.Logic項目,因此bin目錄下面存在OA.Logic.dll

爲了優化路由匹配,咱們還能夠指定命名空間,這樣的話,就只會在指定的命名空間下面去匹配了,不須要遍歷bin目錄下面全部dll下面的因此類一個一個去匹配。

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[1] { "Web.Logic" } //指定Controller所在命名空間
            );
        }

 一會兒就零點了,先洗洗睡了,最近深圳真冷,555~ 未完,待續....

相關文章
相關標籤/搜索