一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ASP.NET MVC功能詳解 變身數(shù)據(jù)展示達(dá)人

  作為Web開發(fā)者,我們經(jīng)常面對(duì)的任務(wù)就是將數(shù)據(jù)通過表格展現(xiàn)給用戶。最簡單的情景是比如僅將顧客的訂單顯示出來。然而,更多的數(shù)據(jù)表格將提供比如排序,分頁等更多的豐富的功能。

  在ASP.NET的web表單中,GridView控件提供了一種快速簡便的方法顯示網(wǎng)格中的記錄集,并提供像排序、分頁、編輯及刪除的功能,所有的這些只需寫少量的代碼就可以實(shí)現(xiàn)。在頁面加載時(shí),GridView自動(dòng)HTML中的table標(biāo)記,讓你不需要寫任何標(biāo)簽,以及不用去考慮如何顯示和將數(shù)據(jù)綁定到GridView控件。在ASP.NET MVC應(yīng)用中,由于是使用了MVC模式,這對(duì)于那些剛接觸ASP.NET MVC的新手來說有點(diǎn)挑戰(zhàn),特別是那些已經(jīng)熟悉了傳統(tǒng)的ASP.NET開發(fā)的人來說。

  這是一個(gè)講解如何在ASP.NET MVC應(yīng)用中使用數(shù)據(jù)控件的系列文章。在該系列文章中,我們首先學(xué)習(xí)到如何創(chuàng)建ASP.NET MVC應(yīng)用程序及如何訪問數(shù)據(jù)庫。接著是如何在一個(gè)簡單的表格控件中展示數(shù)據(jù)記錄。最后將會(huì)探究如何實(shí)現(xiàn)更豐富功能的數(shù)據(jù)功能,比如排序,分頁,過濾以及客戶端的腳本功能加強(qiáng)。我們同時(shí)也會(huì)探究一些目前比較流行的表格控件,比如MvcContrib項(xiàng)目和基于Javascript的表格項(xiàng)目jqGrid。本文將首先指導(dǎo)如何創(chuàng)建一個(gè)ASP.NET MVC程序以及如何將數(shù)據(jù)庫中的數(shù)據(jù)呈現(xiàn)到表格中去。

  步驟1 創(chuàng)建ASP.NET MVC項(xiàng)目

  ASP.NET MVC是微軟根據(jù)著名的MVC設(shè)計(jì)模式而專門為ASP.NET開發(fā)而實(shí)現(xiàn)的一個(gè)框架。從本質(zhì)上說,它允許開發(fā)者在網(wǎng)頁中使用更強(qiáng)大的控件,并使得程序開發(fā)者和頁面開發(fā)者能更專注于自身領(lǐng)域的開發(fā),使的程序更容易測試,更容易實(shí)現(xiàn)SEO。ASP.NET MVC框架最早是在Visual Studio 2008和ASP.NET 3.5 sp1時(shí)提出來的。在.NET 4中,ASP.NET MVC已經(jīng)是作為其中的一個(gè)重要組成部分了,如果使用Visual Studio 2010的話,就不需要另外下再ASP.NET MVC框架了。

  下面我們開始建立一個(gè)新的ASP.NET MVC應(yīng)用。首先啟動(dòng)Visual Studio 2010,選擇文件—新項(xiàng)目。選擇C#語言,并且選擇建立一個(gè)ASP.NET MVC2 空Web應(yīng)用程序,將項(xiàng)目命名為GridDemosMVC,之后按確定完成,如下圖:

創(chuàng)建<a href=/itjie/ASPjishu/ target=_blank class=infotextkey>ASP</a>.<a href=/itjie/NETjishu/ target=_blank class=infotextkey>NET</a> MVC項(xiàng)目

   一個(gè)新的空的ASP.NET MVC2 應(yīng)用的目錄結(jié)構(gòu)如下:

  Content -這個(gè)目錄存放的是靜態(tài)的頁面內(nèi)容,比如CSS文件,圖片等。

   Controllers -這個(gè)目錄存放的是應(yīng)用的控制器及相關(guān)文件。在MVC模式中,控制層負(fù)責(zé)處理用戶的請(qǐng)求并選擇模型和產(chǎn)生返回的視圖。控制器是以類的形式實(shí)現(xiàn)的,其中的方法被稱為actions,當(dāng)以約定的URL形式訪問控制器時(shí),這些actions方法就會(huì)被調(diào)用。

   Models - 這個(gè)目錄存放的是實(shí)體模型文件。

   Scripts -這個(gè)目錄存放的是包括jQuery和微軟的ASP.NET Ajax庫的相關(guān)Javascript文件。

   Views - 這個(gè)目錄包含了視圖層的文件。視圖通常包括HTML、Javascript文件和服務(wù)端產(chǎn)生的文件。不象傳統(tǒng)的ASP.NET Web應(yīng)用中服務(wù)端代碼和頁面文件是混在一起的(或者代碼是單獨(dú)以code-behind的方式存放),在ASP.NET MVC中,視圖層的文件不應(yīng)該包含業(yè)務(wù)邏輯代碼。

   Global.asax –這個(gè)文件其實(shí)是ASP.NET MVC中一個(gè)重要的核心文件。 ASP.NET MVC中廣泛使用了ASP.NET的的URL路由選擇功能(有關(guān)介紹參考: http://www.4guysfromrolla.com/articles/012710-1.ASPx一文)。ASP.NET MVC 框架中設(shè)定了一個(gè)默認(rèn)的URL路由規(guī)則如下: {controller}/{action}/{id},當(dāng)用戶比如以www.yoursite.com/Categories/View/Beverages,訪問時(shí),ASP.NET會(huì)默認(rèn)執(zhí)行名為CategoriesContriller這個(gè)控制器的其中的view這個(gè)方法,并且將Beverages作為id傳進(jìn)去。

  步驟2 增加Northwind數(shù)據(jù)庫支持和創(chuàng)建Linq-TO-SQL類

  在我們開始設(shè)計(jì)控制器和頁面視圖前,我們先設(shè)置好數(shù)據(jù)庫,本文將以Northwind數(shù)據(jù)庫作為示例,其中的數(shù)據(jù)庫文件在本文的附件中可以下載。在項(xiàng)目中,建立一個(gè)App_Data文件夾,將附件中的northwnd.mdf和northwnd.ldf放進(jìn)去。

  現(xiàn)在可以開始從數(shù)據(jù)庫中讀取數(shù)據(jù)了,本文中采用的是Linq-to-SQL的方法。它是一種微軟設(shè)計(jì)的ORM對(duì)象關(guān)系映射工具。之所以選擇它,是因?yàn)樗赡苁亲羁熳詈啽愕腛RM工具了。實(shí)際上,Linq-to-SQL在我們的項(xiàng)目工程中增加了相關(guān)的文件,指定我們要訪問的數(shù)據(jù)庫或表,接著它創(chuàng)建一個(gè)叫DataContext的類,這個(gè)類用來更新及從數(shù)據(jù)庫中獲取數(shù)據(jù)。Linq-to-sql允許我們使用簡潔的可讀性強(qiáng)的代碼去操作數(shù)據(jù)庫,這使得我們可以暫時(shí)不用去浪費(fèi)時(shí)間在編寫底層的SQL代碼的編寫上。我們推薦閱讀Scott Guthire編寫的關(guān)于Linq-SQL的教程<( http://scottonwriting.NET/sowblog/archive/2010/07/27/links-to-scott-guthrie-s-using-linq-to-sql-tutorials.ASPx)。

  首先,我們鼠標(biāo)右擊Models文件夾,選擇新增文件,從對(duì)話框中,選擇Linq to SQl的類模版,并將其命名為Northwind.dbml,就會(huì)創(chuàng)建一個(gè)新文件,打開后,可以在Linq-to-SQL設(shè)計(jì)器中看到。具體步驟見如下圖:

  接下來,轉(zhuǎn)到服務(wù)資源管理器中,展開northwnd.mdf這個(gè)文件,拖拉其表分類下的Categories和Products兩個(gè)表到設(shè)計(jì)器中去,并且保存,要做的工作就是這么多,這時(shí)系統(tǒng)已經(jīng)自動(dòng)為我們構(gòu)建了數(shù)據(jù)訪問層了。

  步驟3 為項(xiàng)目增加必要的文件

  此外,我們要將文中附件解壓縮后,將其中的一些文件復(fù)制到項(xiàng)目工程中,因?yàn)檫@些是我們項(xiàng)目中要用到的一些資源文件。首先將附件中的工程的rContent目錄下的所有內(nèi)容復(fù)制到當(dāng)前項(xiàng)目的Content目錄下,并把附件工程中的Views/Shared目錄復(fù)制到當(dāng)前項(xiàng)目中的相同目錄中去。注意的是并不需要復(fù)制其他文件到當(dāng)前項(xiàng)目中去,因?yàn)槠渌募窃诮窈蟮慕坛讨杏杏玫降摹?/p>

  步驟4 增加ProductsController控制器

  對(duì)于本文,所有的數(shù)據(jù)展示都是通過一個(gè)簡單的控制器ProductsController去實(shí)現(xiàn),其中所有的用戶請(qǐng)求都會(huì)被派發(fā)到Products控制器中的Index.action去處理,即比如用戶通過URL http://www.yoursite.com/Products/Index,或者www.yoursite.com/Products(因?yàn)镮ndex是默認(rèn)訪問的action名,可以省略),同樣象排序或者分頁的功能,訪問的形式是www.yoursite.com/Products/Sortable和www.yoursite.com/Products/Paged.

  創(chuàng)建控制器時(shí),在Controllers文件夾中右擊,在彈出的菜單中選擇新增—控制器ji 即可,將控制器命名為ProductsController,這樣將創(chuàng)建一個(gè)ProductsController的類和一個(gè)Index的方法。

  當(dāng)用戶訪問www.yoursite.com/Products/Index時(shí),我們希望顯示產(chǎn)品的名稱,分類、數(shù)量、單價(jià)和折扣。因此我們需要使用NorthwindDataContext這個(gè)輔助類,它是由Linq-to-SQL工具自動(dòng)產(chǎn)生的一個(gè)類,輔助我們對(duì)數(shù)據(jù)庫的存取。因?yàn)槲覀円诳刂破鞯乃衋ction方法中都要用到這個(gè)輔助類,因此可以增加一個(gè)叫DataContext的屬性去返回這個(gè)類的實(shí)例。此外,這個(gè)屬性將對(duì)NorthwindDataContext實(shí)例進(jìn)行一些屬性的設(shè)置,以實(shí)現(xiàn)在加載產(chǎn)品的時(shí)候同步加載產(chǎn)品所屬的目錄(注意:Linq-to-SQL默認(rèn)是使用延遲加載的,所謂的延遲加載,就是比如我們?cè)陲@示每個(gè)產(chǎn)品的時(shí)候,并不希望ORM框架同步加載產(chǎn)品所屬的分類,因?yàn)橥郊虞d的話當(dāng)數(shù)據(jù)量大的時(shí)候是會(huì)很耗費(fèi)資源的)。代碼實(shí)現(xiàn)如下:

public class ProductsController : Controller
  {
private NorthwindDataContext _DataContext = null;
  
protected NorthwindDataContext DataContext
  {
get
  {
if (_DataContext == null)
  _DataContext
= new NorthwindDataContext(); // Eager load Category info
   var options= new DataLoadOptions();
  options.LoadWith(p
= p.Category);
  _DataContext.LoadOptions
= options;
  
return _DataContext;
  }
  }
// GET: /Products/ public ActionResult Index()
  {
  
return View();
  }
  }

NET技術(shù)ASP.NET MVC功能詳解 變身數(shù)據(jù)展示達(dá)人,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 一区二区三区福利 | 91精品福利老司机在线观看 | 成人在线免费视频观看 | 国产美女视频一区二区二三区 | 激情图片小说网 | 欧美福利视频网站 | 国产综合在线视频 | 亚洲成人精品 | 97在线观看成人免费视频 | 日本一区深夜影院深a | 日韩亚洲欧洲在线com91tv | 久久久久久久久久免观看 | 最新国产精品亚洲二区 | 美女视频黄网站 | 美妇乱人伦性 | 99爱精品视频 | 视频三区 | 91自啪 | 国产免费网 | 婷婷毛片 | 黄网站色成年片大免费软件 | 91短视频版在线观看www | 国产欧美精品专区一区二区 | 久久综合亚洲伊人色 | 国产成人免费 | 性欧美videosg最新另类 | 国产精品嫩草影院免费看 | 日产精品一区二区免费 | 麻豆精品在线视频 | 国产精品福利一区二区亚瑟 | 欧美日韩亚洲二区在线 | 久久久免费精品 | 91麻豆国产香蕉久久精品 | 精品久久久久久久免费加勒比 | 欧美亚洲国产成人不卡 | 亚洲 欧美 校园 | 奇米影视久久777中文字幕 | 国产成人精品视频午夜 | 国产美女视频网站 | 九九视频精品在线 | 中文字幕专区在线亚洲 |