上面我們介紹到mvc的框架項目搭建,並且完成了數據實體的映射。
上一篇遺留的問題:
經過測試,上一篇中Common類庫,在刪掉默認的cs頁面後,竟然不能被其他類庫(如:service,manager)引用,在使用using時根本不能引用,而在引用中我已經添加了common的dll文件。這一點令我很不解,而其他類庫在刪除默認的cs頁面後,可以被正常使用。這裏如果有跟我一樣的朋友,不要將默認頁面刪掉,就可以正常使用了。有了解的大神麼?請在評論區解釋一下。
這一篇我們將會將整個項目調試通,在頁面顯示一些信息。不做過多的處理。寫這個目的也僅僅是爲了初學者能夠對mvc4有個瞭解。在以後有時間會更新一個菜單權限管理的項目例子,因爲setting這一塊在任何中大型項目中均會用到,因此對着瞭解也是有必要的。
廢話一大篇開始正式內容,上一篇的model視圖應該是這樣的:
這裏EF幫助生成了一個名爲App.Config的文件,這裏面有我們使用的connectionString:
這裏我們使用第二個,將其複製到Web下面的Web.Config文件中:
要放在configuration標籤下:
這裏面的參數不在過多描述,初學者可以找一下相關的博客。
至此,配置一個基礎mvc項目的所有配置都已經完成。一直看下來的你相信對mvc的架構已經大致瞭解了。若過以前學過java的mvc開發或者SSM,SSH架構的對此更是瞭然於胸。不錯,這個與Java的mvc模式有很大程度上的相似。
下面寫一個Demo,僅供學習參考,在最後我會將源代碼開放出來,但是我不敢確定會不會因爲vs和sqlserver的版本不一致而引發問題。
顯示Demo:
Service層:
service層使用Linq與數據庫進行數據交換,至於linq與sql語句之間的優缺點不在贅述,我的其他博客有介紹,亦可以到網上搜尋相關信息。
代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Arise.Model; //手動添加
using Arise.Common;//手動添加
namespace Arise.Service
{
public class Login_Service
{
public User_Master GetUserMaster()
{
using (AriseEntities ariseEntities = new AriseEntities())
{
return ariseEntities.User_Master.FirstOrDefault();
}
}
}
}
裏面就一句簡單的代碼,使用實體獲取第一行的User_Master對象。
Manager層:(進行業務上處理,這裏沒什麼作用)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Arise.Common;
using Arise.Model;
using Arise.Service;
namespace Arise.Manager
{
public class Login_Manager
{
private Login_Service loginService = new Login_Service();
public User_Master GetUserMaster()
{
return loginService.GetUserMaster();
}
}
}
Controller:(負責數據的接受和視圖的轉發)
創建過程:
Controller右鍵 =》添加=》控制器
這裏命名必須是以Controller爲結尾。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Arise.Common;
using Arise.Model;
using Arise.Manager;
namespace Arise.Web.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
Login_Manager loginManager = new Login_Manager();
User_Master userMaster = loginManager.GetUserMaster();
ViewBag.name = userMaster.User_Name;
return View();
}
}
}
這裏我要介紹一下controller一些相關的東西。
當方法的返回值爲ActionResult ,表示返回一個視圖,視圖名爲方法名。
ViewBag,可以將數據帶到View中,顯示。類似於java中的request域中的parameter參數。
View層:(視圖層)這裏只是一個演示頁面。
View中創建一個名字與Controller名相同的文件夾,
在文件上右鍵=》添加=》視圖
這裏視圖的命名也是有規則的,需與返回視圖的方法的方法名相同。這裏就是Index了。
@{
ViewBag.Title = "Index";
}
<h2>@ViewBag.Name</h2>
這裏只是爲了測通系統,沒有做頁面的處理。
@ViewBag:取出放在ViewBag中的內容。
最終成功頁面:
好了,這裏成功的講數據庫中的Name列取出來,並顯示。這樣表示我們系統處於通過狀態。
一個簡單的入門Demo完了,希望能夠對初學者有所幫助。接下來我會使用這個框架持續更新一個menu的授權項目,希望多關注。