Asp.Net Mvc2 增刪改查DEMO


接觸mvc也有一段時間了(2.0),也看到園子里很多人在學習,自己也在園子里面看過前輩們寫的博客,確實受益匪淺。本文寫的都是基礎中的基礎,僅供想學習MVC的新手們入門之作。

1、List頁面

一般List頁面主要用來顯示數據,本文中的List頁面提供,數據顯示並且分頁、刪除操作、新增及修改操作。因為看到園子里面有部分人在使用MVC進行數據顯示的時候還在使用ViewData,這里介紹的是強類型顯示數據。添加新的視圖,在第一行代碼可以看到

1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

這里可以定義這個視圖的類型,操作起來也比較方便,我們這里這樣定義

1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Web.Models.PageData<Web.Models.Users>>" %>

這里返回的是一個分頁集合實體類,實體類定義

 1  /// <summary>
 2     /// 分頁查詢記錄集類
 3     /// </summary>
 4     /// <typeparam name="T">通類類型</typeparam>
 5     public class PageData<T>
 6     {
 7         /// <summary>
 8         /// 獲取或設置查詢返回的分頁記錄集
 9         /// </summary>
10         public List<T> GetDate = new List<T>();
11 
12         /// <summary>
13         /// 獲取或設置符合查詢條件總記錄數
14         /// </summary>
15         public int Count { get; set; }
16 
17         /// <summary>
18         /// 每頁多少條
19         /// </summary>
20         public int PageSize = 5;
21 
22         /// <summary>
23         /// 當前多少頁
24         /// </summary>
25         public int PageIndex { get; set; }
26     }

經過控制器處理之后返回相關參數,包含分頁所需要的顯示數據、總記錄數、頁碼、當前第幾頁信息。因為在List頁面中已經定義過類型了,那么調用的時候直接通過Model就可以調用出來。

上圖可以看出,GetDate這個屬性中保存的是泛型的數據集合,這樣我們就可以循環的顯示出來。如果分頁的話,根據頁碼傳值至控制器,重新獲取數據,填充,然后返回,再顯示,這里就可以實現顯示數據並且分頁的功能了。這里稍微介紹下分頁的插件,用的是jquery.pagination,如果大家不熟悉使用的話,園子里有詳細介紹的文章。

控制器中從數據庫中獲取相關數據,填充至實體類中,這樣視圖中直接調用就OK了。這里說寫控制器中的寫法。

 1 $(function () { 
 2             //分頁參數設置
 3             $("#Pagination").pagination(<%=Model.Count%>, {
 4                 callback: pageselectCallback,
 5                 prev_text: "« 上一頁", //上一頁按鈕文字
 6                 next_text: "下一頁 »", //下一頁按鈕文字
 7                 items_per_page: <%=Model.PageSize%>, //每頁顯示多少條 
 8                 num_display_entries: 5, //連續分頁主體部分顯示的分頁條目數
 9                 current_page: <%=Model.PageIndex%>, //當前多少頁  
10                 num_edge_entries: 1, //兩側顯示的首尾分頁的條目數
11                 link_to: "?page=__id__"
12             });
13         });
14         function pageselectCallback(page_id, jq) {
15             //回調函數 
16         } 

2、添加操作。

我們先定義一個實體類。

 1  /// <summary>
 2         /// 用戶ID
 3         /// </summary>
 4         public int UID { get; set; }
 5 
 6         /// <summary>
 7         /// 登錄帳號
 8         /// </summary>
 9         public string UName { get; set; }
10 
11         /// <summary>
12         /// 登錄密碼
13         /// </summary>
14         public string UPassWord { get; set; } 

然后在新增的頁面我們需要定義兩個input,然后輸入登錄帳號和登錄密碼,注意在定義兩個input的時候,請務必設置input的name屬性跟實體類對應,當然我們的視圖也需要定義類型為Users(實體類,類名),設置action和method屬性。

 1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Web.Models.Users>" %>
 2 <form action="/Demo/Add/" method="post">
 3     <table>
 4         <tr>
 5             <td>登錄帳號:</td>
 6             <td><input type="text" name="UName" /></td>
 7         </tr>
 8         <tr>
 9             <td>登錄密碼:</td>
10             <td><input type="password" name="UPassWord" /></td>
11         </tr>
12         <tr>
13             <td colspan="2" align="center"><input type="submit" value="提交" /></td> 
14         </tr>
15     </table>
16     </form>

因為MVC會把表單自動映射到實體類的字段中,那么我們在控制器中直接獲取這個實體類就OK了。因為看到有些童鞋獲取數據是通過Request.Form[""]來獲取值的。

1 [HttpPost]
2         //進行添加操作
3         public ActionResult Add(Users model)
4         {
5             //這里可以進行新增操作
6             //Bll.Add(model);
7             return RedirectToAction("List");
8         }

這樣實體類中就保存了表單中的值了,不用在一個個去獲取賦值了。修改的話跟這個差不多,這里就不過細去講了,在文章的最后會提供DEMO的下載。

點擊下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM