Asp.Net Mvc2 增刪改查DEMO代碼
更新時(shí)間:2012年10月27日 10:44:23 作者:
接觸mvc也有一段時(shí)間了(2.0),也看到園子里很多人在學(xué)習(xí),自己也在園子里面看過前輩們寫的博客,確實(shí)受益匪淺。本文寫的都是基礎(chǔ)中的基礎(chǔ),僅供想學(xué)習(xí)MVC的新手們?nèi)腴T之作
1、List頁面
一般List頁面主要用來顯示數(shù)據(jù),本文中的List頁面提供,數(shù)據(jù)顯示并且分頁、刪除操作、新增及修改操作。因?yàn)榭吹綀@子里面有部分人在使用MVC進(jìn)行數(shù)據(jù)顯示的時(shí)候還在使用ViewData,這里介紹的是強(qiáng)類型顯示數(shù)據(jù)。添加新的視圖,在第一行代碼可以看到
這里可以定義這個(gè)視圖的類型,操作起來也比較方便,我們這里這樣定義
這里返回的是一個(gè)分頁集合實(shí)體類,實(shí)體類定義
/// <summary>
/// 分頁查詢記錄集類
/// </summary>
/// <typeparam name="T">通類類型</typeparam>
public class PageData<T>
{
/// <summary>
/// 獲取或設(shè)置查詢返回的分頁記錄集
/// </summary>
public List<T> GetDate = new List<T>();
/// <summary>
/// 獲取或設(shè)置符合查詢條件總記錄數(shù)
/// </summary>
public int Count { get; set; }
/// <summary>
/// 每頁多少條
/// </summary>
public int PageSize = 5;
/// <summary>
/// 當(dāng)前多少頁
/// </summary>
public int PageIndex { get; set; }
}
經(jīng)過控制器處理之后返回相關(guān)參數(shù),包含分頁所需要的顯示數(shù)據(jù)、總記錄數(shù)、頁碼、當(dāng)前第幾頁信息。因?yàn)樵贚ist頁面中已經(jīng)定義過類型了,那么調(diào)用的時(shí)候直接通過Model就可以調(diào)用出來。

上圖可以看出,GetDate這個(gè)屬性中保存的是泛型的數(shù)據(jù)集合,這樣我們就可以循環(huán)的顯示出來。如果分頁的話,根據(jù)頁碼傳值至控制器,重新獲取數(shù)據(jù),填充,然后返回,再顯示,這里就可以實(shí)現(xiàn)顯示數(shù)據(jù)并且分頁的功能了。這里稍微介紹下分頁的插件,用的是jquery.pagination,如果大家不熟悉使用的話,園子里有詳細(xì)介紹的文章。
控制器中從數(shù)據(jù)庫中獲取相關(guān)數(shù)據(jù),填充至實(shí)體類中,這樣視圖中直接調(diào)用就OK了。這里說寫控制器中的寫法。
$(function () {
//分頁參數(shù)設(shè)置
$("#Pagination").pagination(<%=Model.Count%>, {
callback: pageselectCallback,
prev_text: "« 上一頁", //上一頁按鈕文字
next_text: "下一頁 »", //下一頁按鈕文字
items_per_page: <%=Model.PageSize%>, //每頁顯示多少條
num_display_entries: 5, //連續(xù)分頁主體部分顯示的分頁條目數(shù)
current_page: <%=Model.PageIndex%>, //當(dāng)前多少頁
num_edge_entries: 1, //兩側(cè)顯示的首尾分頁的條目數(shù)
link_to: "?page=__id__"
});
});
function pageselectCallback(page_id, jq) {
//回調(diào)函數(shù)
}
2、添加操作。
我們先定義一個(gè)實(shí)體類。
/// <summary>
/// 用戶ID
/// </summary>
public int UID { get; set; }
/// <summary>
/// 登錄帳號(hào)
/// </summary>
public string UName { get; set; }
/// <summary>
/// 登錄密碼
/// </summary>
public string UPassWord { get; set; }
然后在新增的頁面我們需要定義兩個(gè)input,然后輸入登錄帳號(hào)和登錄密碼,注意在定義兩個(gè)input的時(shí)候,請(qǐng)務(wù)必設(shè)置input的name屬性跟實(shí)體類對(duì)應(yīng),當(dāng)然我們的視圖也需要定義類型為Users(實(shí)體類,類名),設(shè)置action和method屬性。
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Web.Models.Users>" %>
<form action="/Demo/Add/" method="post">
<table>
<tr>
<td>登錄帳號(hào):</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>
因?yàn)镸VC會(huì)把表單自動(dòng)映射到實(shí)體類的字段中,那么我們?cè)诳刂破髦兄苯荧@取這個(gè)實(shí)體類就OK了。因?yàn)榭吹接行┩@取數(shù)據(jù)是通過Request.Form[""]來獲取值的。
[HttpPost]
//進(jìn)行添加操作
public ActionResult Add(Users model)
{
//這里可以進(jìn)行新增操作
//Bll.Add(model);
return RedirectToAction("List");
}
這樣實(shí)體類中就保存了表單中的值了,不用在一個(gè)個(gè)去獲取賦值了。修改的話跟這個(gè)差不多,這里就不過細(xì)去講了,在文章的最后會(huì)提供DEMO的下載。
點(diǎn)擊下載
一般List頁面主要用來顯示數(shù)據(jù),本文中的List頁面提供,數(shù)據(jù)顯示并且分頁、刪除操作、新增及修改操作。因?yàn)榭吹綀@子里面有部分人在使用MVC進(jìn)行數(shù)據(jù)顯示的時(shí)候還在使用ViewData,這里介紹的是強(qiáng)類型顯示數(shù)據(jù)。添加新的視圖,在第一行代碼可以看到
復(fù)制代碼 代碼如下:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
這里可以定義這個(gè)視圖的類型,操作起來也比較方便,我們這里這樣定義
復(fù)制代碼 代碼如下:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Web.Models.PageData<Web.Models.Users>>" %>
這里返回的是一個(gè)分頁集合實(shí)體類,實(shí)體類定義
復(fù)制代碼 代碼如下:
/// <summary>
/// 分頁查詢記錄集類
/// </summary>
/// <typeparam name="T">通類類型</typeparam>
public class PageData<T>
{
/// <summary>
/// 獲取或設(shè)置查詢返回的分頁記錄集
/// </summary>
public List<T> GetDate = new List<T>();
/// <summary>
/// 獲取或設(shè)置符合查詢條件總記錄數(shù)
/// </summary>
public int Count { get; set; }
/// <summary>
/// 每頁多少條
/// </summary>
public int PageSize = 5;
/// <summary>
/// 當(dāng)前多少頁
/// </summary>
public int PageIndex { get; set; }
}
經(jīng)過控制器處理之后返回相關(guān)參數(shù),包含分頁所需要的顯示數(shù)據(jù)、總記錄數(shù)、頁碼、當(dāng)前第幾頁信息。因?yàn)樵贚ist頁面中已經(jīng)定義過類型了,那么調(diào)用的時(shí)候直接通過Model就可以調(diào)用出來。

上圖可以看出,GetDate這個(gè)屬性中保存的是泛型的數(shù)據(jù)集合,這樣我們就可以循環(huán)的顯示出來。如果分頁的話,根據(jù)頁碼傳值至控制器,重新獲取數(shù)據(jù),填充,然后返回,再顯示,這里就可以實(shí)現(xiàn)顯示數(shù)據(jù)并且分頁的功能了。這里稍微介紹下分頁的插件,用的是jquery.pagination,如果大家不熟悉使用的話,園子里有詳細(xì)介紹的文章。
控制器中從數(shù)據(jù)庫中獲取相關(guān)數(shù)據(jù),填充至實(shí)體類中,這樣視圖中直接調(diào)用就OK了。這里說寫控制器中的寫法。
復(fù)制代碼 代碼如下:
$(function () {
//分頁參數(shù)設(shè)置
$("#Pagination").pagination(<%=Model.Count%>, {
callback: pageselectCallback,
prev_text: "« 上一頁", //上一頁按鈕文字
next_text: "下一頁 »", //下一頁按鈕文字
items_per_page: <%=Model.PageSize%>, //每頁顯示多少條
num_display_entries: 5, //連續(xù)分頁主體部分顯示的分頁條目數(shù)
current_page: <%=Model.PageIndex%>, //當(dāng)前多少頁
num_edge_entries: 1, //兩側(cè)顯示的首尾分頁的條目數(shù)
link_to: "?page=__id__"
});
});
function pageselectCallback(page_id, jq) {
//回調(diào)函數(shù)
}
2、添加操作。
我們先定義一個(gè)實(shí)體類。
復(fù)制代碼 代碼如下:
/// <summary>
/// 用戶ID
/// </summary>
public int UID { get; set; }
/// <summary>
/// 登錄帳號(hào)
/// </summary>
public string UName { get; set; }
/// <summary>
/// 登錄密碼
/// </summary>
public string UPassWord { get; set; }
然后在新增的頁面我們需要定義兩個(gè)input,然后輸入登錄帳號(hào)和登錄密碼,注意在定義兩個(gè)input的時(shí)候,請(qǐng)務(wù)必設(shè)置input的name屬性跟實(shí)體類對(duì)應(yīng),當(dāng)然我們的視圖也需要定義類型為Users(實(shí)體類,類名),設(shè)置action和method屬性。
復(fù)制代碼 代碼如下:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Web.Models.Users>" %>
<form action="/Demo/Add/" method="post">
<table>
<tr>
<td>登錄帳號(hào):</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>
因?yàn)镸VC會(huì)把表單自動(dòng)映射到實(shí)體類的字段中,那么我們?cè)诳刂破髦兄苯荧@取這個(gè)實(shí)體類就OK了。因?yàn)榭吹接行┩@取數(shù)據(jù)是通過Request.Form[""]來獲取值的。
復(fù)制代碼 代碼如下:
[HttpPost]
//進(jìn)行添加操作
public ActionResult Add(Users model)
{
//這里可以進(jìn)行新增操作
//Bll.Add(model);
return RedirectToAction("List");
}
這樣實(shí)體類中就保存了表單中的值了,不用在一個(gè)個(gè)去獲取賦值了。修改的話跟這個(gè)差不多,這里就不過細(xì)去講了,在文章的最后會(huì)提供DEMO的下載。
點(diǎn)擊下載
您可能感興趣的文章:
- Asp.Net Mvc2 增刪改查DEMO附下載
- angularJS與bootstrap結(jié)合實(shí)現(xiàn)動(dòng)態(tài)加載彈出提示內(nèi)容
- asp.net MVC利用自定義ModelBinder過濾關(guān)鍵字的方法(附demo源碼下載)
- ASP.NET MVC使用ActionFilterAttribute實(shí)現(xiàn)權(quán)限限制的方法(附demo源碼下載)
- 基于AngularJs + Bootstrap + AngularStrap相結(jié)合實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)代碼
- indexedDB bootstrap angularjs之 MVC DOMO (應(yīng)用示例)
相關(guān)文章
asp.net forms身份驗(yàn)證,避免重復(fù)造輪子
最近開始一個(gè)小 asp.net 項(xiàng)目,整個(gè)項(xiàng)目需要登錄才能操作。以前大家都采用 asp 的方式 session + cookie 來實(shí)現(xiàn)身份驗(yàn)證,我一直對(duì) asp.net 自帶的 forms 驗(yàn)證早就耳聞,苦于沒實(shí)踐,今天剛好逮到機(jī)會(huì)實(shí)際應(yīng)用一下。2009-11-11使用CustomValidator自定義驗(yàn)證控件檢查是否有對(duì)ListBox控件選擇
在網(wǎng)頁前端處,我們放置ListBox控件,在數(shù)據(jù)提交前,檢查用戶是否有對(duì)此控件進(jìn)行選擇?小編將介紹使用Javascript與CustomValidator自定義驗(yàn)證控件來檢查感興趣的朋友可以了解下2013-01-01ASP.NET中GridView和Repeater重復(fù)數(shù)據(jù)如何合并
這篇文章主要介紹了ASP.NET中GridView和Repeater重復(fù)數(shù)據(jù)合并的方法,感興趣的小伙伴們可以參考一下2016-08-08Asp.net使用SignalR實(shí)現(xiàn)酷炫端對(duì)端聊天功能
這篇文章主要為大家詳細(xì)介紹了Asp.net使用SignalR實(shí)現(xiàn)酷炫端對(duì)端聊天功能,感興趣的小伙伴們可以參考一下2016-04-04詳解ASP.NET Core 中的多語言支持(Localization)
本篇文章主要介紹了ASP.NET Core 中的多語言支持(Localization) ,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08GridView使用CommandField刪除列實(shí)現(xiàn)刪除時(shí)提示確認(rèn)框
在.net2005提供的GridView中我們可以直接添加一個(gè)CommandField刪除列完后在它的RowDeleting事件中完成刪除2013-09-09.NET?Core使用Worker?Service創(chuàng)建服務(wù)
這篇文章介紹了.NET?Core使用Worker?Service創(chuàng)建服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02