ASP.net MVC框架提供了大量的HTML渲染的方法和控件,但是使用起來有諸多的不便。對於有經驗的設計者使用HTML helpers可以構建一個簡單的用戶界面,然後加上一些HTML和css就能構建出非常漂亮的界面。但是,對開發人員來說使用一些第三方的控件,界面可能更加方便,開發效率會更高,也使開發人員不用花大量的時間在UI界面上。
這篇文章將介紹兩個非常有用的,可以在Asp.net mvc 2中使用的第三方的控件:MvcContrib Grid和SlickUpload。文章將以例子的形式進行說明。
MvcContrib Grid
Gird在現在的應用系統中隨處可見。MvcContrib Grid是一個開源的控件,可以構建很整潔的HTML的表格。一般在Asp.net mvc開發中,你可以使用下面代碼產生一個表格。
<table>
<tr>
<th>Username</th>
<th>First name</th>
<th>Last name</th>
<th>Email</th>
<th> </th>
</tr>
<% foreach (var profile in Model) { %>
<tr>
<td>
<%= Html.Encode(profile.Username) %>
</td>
<td>
<%= Html.Encode(profile.FirstName) %>
</td>
<td>
<%= Html.Encode(profile.LastName) %>
</td>
<td>
<%= Html.Encode(profile.Email) %>
</td>
<td>
<%= Html.ActionLink("View", "Show",
new{username = profile.Username}) %>
</td>
</tr>
<% } %>
</table>
從上面的代碼可以看出,寫MVC的View和寫Asp代碼一樣,一行一行的輸出,非常的麻煩。使用MvcContrib Grid,只需一行代碼,如下:
<%= Html.Grid(Model).AutoGenerateColumns() %>
這行代碼將會把實體類所以的屬性列出來。但是有些字段是不需要顯示的,我們可以通過下面代碼來指定輸出列以及輸出地格式:
<h2>產品列表</h2>
<%= Html.Grid(Model).Columns(column => {
column.For(x => x.ProductID).Named("Product ID");
column.For(x => x.ProductName);
column.For(x => x.QuantityPerUnit);
column.For(x => x.UnitPrice).Format("{0:N2}");
column.For(x => Html.ActionLink("View Product", "Detail", new { id = x.ProductID })).DoNotEncode();
}) %>
這個例子的數據庫是NorthWind,效果如下圖:
顯示數據庫中所有產品分類的名稱: