最近突然發現MVC3其中內建好多內容我都還未靈活運用,真是可惜可惜,在上一篇中為了實現分頁我零零散散的寫了2個類 + view視圖實現,但是看過MVC3內建的好東西,我對MVC3更加喜歡了。
1、Razor視圖引擎
我不得不說,Razor視圖引擎太酷了,我喜歡它那清爽的代碼風格,它使用@符號表示代碼塊,下面的代碼在Razor都是合法的:
以下為引用的內容:
@foreach (var item in Model) {
<b>@item.FullName</b>
}
2、新的助手
助手一直是ASP.NET MVC和其它MVC架構相比不足的地方,ASP.NET MVC 3提供了新的助手,將會縮小這一領域和競爭者的差距。
Chart:協助建立圖表,非常好用。
WebGrid:以網格形式呈現對象集合,包括分頁和排序功能,可以輸出為一個普通的HTML表格。
WebImage:協助建立映像,也包括基本的映像操作方法,如微調,向內,縮小等。
WebMail:用來寄送電子郵件。
下一代助手被稱為“基於任務的助手”,本來包含在測試版中,但現在又看不到了,我希望在最終正式版中能見到它,因為它是那樣的讓我迷戀。
Video:包含Video.Flash,Video.Silverlight和Video.MediaPlayer等方法,允許添加它們對應的HTML標籤。
Twitter:包含基本的twitter操作,如呈現一個特定使用者的twitter流,或一個給定搜尋的結果。
ReCapcha:協助使用reCAPTCHA服務。
Gravatar:從Gravatar服務指定一個帳戶圖片。
Analytics:為不同的分析服務提供不同的方法,如GetGoogleHtml,GetStatCounterHtml或GetYahooHtml,提供需要的JavaScript代碼。
3、支援基於jQuery的Ajax
在ASP.NET MVC 3中,Ajax.ActionLink,Ajax.RouteLink,Ajax.BeginForm和Ajax.BeginRouteForm將使用jQuery串連伺服器,此外,它們不會使用內聯JavaScript,它們會調用JavaScript檔案中提供的函數,用戶端驗證也與此類似。
4、新的依賴注入(Dependency Injection)支援帶來更好的擴充性
ASP.NET MVC 3將包含大量的擴充,幾乎任何事情都可以使用依賴注入進行擴充。
5、整合NuPack
NuPack是微軟新的打包系統,它完全和ASP.NET MVC 3整合到一起,在“方案總管”的“引用”檔案夾上點擊右鍵,選擇“添加包引用”,如所示。
圖 1 添加包引用
接著會彈出NuPack介面,在這裡你可以選擇不同的庫,如所示。
圖 2 NuPack添加包引用的介面
------------------------------------------------------------------------------------
知識是引路燈,主要還是實踐!
分頁的使用WebGrid:
Control:
public ActionResult WebGrid()
{
//取得資料
MercuryDbExEntities db = new MercuryDbExEntities();
var result = db.Users.ToList();
ViewData.Model = result;
return View();
}
View:
@using Mvc3_Test.DataBase
@model IEnumerable<Mvc3_Test.DataBase.Users>
@{
ViewBag.Title = "WebGrid";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>WebGrid</h2>
@{
var grid = new WebGrid(source: Model,
fieldNamePrefix: "grid_",
defaultSort: "Id",
canPage:true,
canSort:true,
ajaxUpdateContainerId:"DivGrid",
pageFieldName:"paging",
sortFieldName:"soutField",
rowsPerPage:10);
}
<div id="DivGrid">
@grid.GetHtml(
columns:grid.Columns(
grid.Column("Id","ID"),
grid.Column("loginName","LoginName")
)
)
</div>
就這樣一個分頁完成了。