經過控制器處理之後返回相關參數,包含分頁所需要的顯示數據、總記錄數、頁碼、當前第幾頁信息。因為在List頁面中已經定義過類型了,那麼調用的時候直接通過Model就可以調用出來。
上圖可以看出,GetDate這個屬性中保存的是泛型的數據集合,這樣我們就可以循環的顯示出來。如果分頁的話,根據頁碼傳值至控制器,重新獲取數據,填充,然後返回,再顯示,這裡就可以實現顯示數據並且分頁的功能了。這裡稍微介紹下分頁的插件,用的是jquery.pagination,如果大家不熟悉使用的話,園子裡有詳細介紹的文章。
控制器中從數據庫中獲取相關數據,填充至實體類中,這樣視圖中直接調用就OK了。這裡說寫控制器中的寫法。
復制代碼 代碼如下:
$(function () {
//分頁參數設置
$("#Pagination").pagination(<%=Model.Count%>, {
callback: pageselectCallback,
prev_text: "« 上一頁", //上一頁按鈕文字
next_text: "下一頁 »", //下一頁按鈕文字
items_per_page: <%=Model.PageSize%>, //每頁顯示多少條
num_display_entries: 5, //連續分頁主體部分顯示的分頁條目數
current_page: <%=Model.PageIndex%>, //當前多少頁
num_edge_entries: 1, //兩側顯示的首尾分頁的條目數
link_to: "?page=__id__"
});
});
function pageselectCallback(page_id, jq) {
//回調函數
}
2、添加操作。我們先定義一個實體類。
復制代碼 代碼如下:
/// <summary>
/// 用戶ID
/// </summary>
public int UID { get; set; }
/// <summary>
/// 登錄帳號
/// </summary>
public string UName { get; set; }
/// <summary>
/// 登錄密碼
/// </summary>
public string UPassWord { get; set; }
然後在新增的頁面我們需要定義兩個input,然後輸入登錄帳號和登錄密碼,注意在定義兩個input的時候,請務必設置input的name屬性跟實體類對應,當然我們的視圖也需要定義類型為Users(實體類,類名),設置action和method屬性。
復制代碼 代碼如下:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Web.Models.Users>" %>
<form action="/Demo/Add/" method="post">
<table>
<tr>
<td>登錄帳號:</td>
<td><input type="text" name="UName" /></td>
</tr>
<tr>
<td>登錄密碼:</td>
<td><input type="password" name="UPassWord" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
因為MVC會把表單自動映射到實體類的字段中,那麼我們在控制器中直接獲取這個實體類就OK了。因為看到有些童鞋獲取數據是通過Request.Form[""]來獲取值的。
復制代碼 代碼如下:
[HttpPost]
//進行添加操作
public ActionResult Add(Users model)
{
//這裡可以進行新增操作
//Bll.Add(model);
return RedirectToAction("List");
}
這樣實體類中就保存了表單中的值了,不用在一個個去獲取賦值了。修改的話跟這個差不多,這裡就不過細去講了,在文章的最後會提供DEMO的下載。
點擊下載