六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

在ASP.NET中完成MVC模式(4)

[摘要]在ASP.NET中實現Model-View-Controller模式(四)模型-視圖-控制器分離的重構為了解決上面所遺留的問題,你必須將模型與控制器角色分離。視圖的實現代碼與前部分相同。模型下面的代...
在ASP.NET中實現Model-View-Controller模式(四)

模型-視圖-控制器分離的重構

為了解決上面所遺留的問題,你必須將模型與控制器角色分離。

視圖的實現代碼與前部分相同。

模型

下面的代碼例子使模型角色僅僅依賴于數據庫,而不包含任何與視圖相依賴的代碼。

using System;

using System.Collections;

using System.Data;

using System.Data.SqlClient;



public class DatabaseGateway

{

public static DataSet GetRecordings()

{

String selectCmd = "select * from Recording";



SqlConnection myConnection =

new SqlConnection(

"server=(local);database=recordings;Trusted_Connection=yes");

SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);



DataSet ds = new DataSet();

myCommand.Fill(ds, "Recording");

return ds;

}



public static DataSet GetTracks(string recordingId)

{

String selectCmd =

String.Format(

"select * from Track where recordingId = {0} order by id",

recordingId);



SqlConnection myConnection =

new SqlConnection(

"server=(local);database=recordings;Trusted_Connection=yes");

SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);



DataSet ds = new DataSet();

myCommand.Fill(ds, "Track");

return ds;

}



現在的代碼只依賴于數據庫,這個類是一個優秀的數據庫的通道,它持有訪問表或視圖的所用的SQL語句,其它的代碼調用一些方法來完成與數據庫的交互。

控制器

這種重構方式利用代碼隱藏機制,在負責數據訪問的模型部分相對獨立的情況下,由控制器負責事件與方法的控制工作。模型的任務很明確的,它僅返回一個DataSet對象。這種實現方式就像視圖代碼一樣,不依賴于數據是如何從數據庫中返回的。

using System;

using System.Data;

using System.Collections;

using System.Web.UI.WebControls;



public class Solution : System.Web.UI.Page

{

protected System.Web.UI.WebControls.Button submit;

protected System.Web.UI.WebControls.DataGrid MyDataGrid;

protected System.Web.UI.WebControls.DropDownList recordingSelect;



private void Page_Load(object sender, System.EventArgs e)

{

if(!IsPostBack)

{

DataSet ds = DatabaseGateway.GetRecordings();

recordingSelect.DataSource = ds;

recordingSelect.DataTextField = "title";

recordingSelect.DataValueField = "id";

recordingSelect.DataBind();

}

}



void SubmitBtn_Click(Object sender, EventArgs e)

{

DataSet ds =

DatabaseGateway.GetTracks(

(string)recordingSelect.SelectedItem.Value);



MyDataGrid.DataSource = ds;

MyDataGrid.DataBind();

}



#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: This call is required by the ASP.NET Web Form Designer.

//

InitializeComponent();

base.OnInit(e);

}



/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.submit.Click += new System.EventHandler(this.SubmitBtn_Click);

this.Load += new System.EventHandler(this.Page_Load);



}

#endregion

}



主站蜘蛛池模板: 亚洲宅男天堂a在线 | 亚洲六月丁香婷婷综合 | 亚洲三级一区 | 五月婷亚洲 | 日韩欧美不卡在线 | 特黄特黄视频 | 亚洲精品在线播放 | 日韩欧美在线视频观看 | 欧美一级片网 | 午夜理理伦a级在线观看 | 日韩一级精品视频在线观看 | 又粗又硬又大又爽免费观看 | 色网站综合| 日本无卡码一区二区三区 | 日本免费专区 | 亚洲第一天堂无码专区 | 日本高清免费中文在线看 | 中文字幕波多野不卡一区 | 青娱乐自拍视频 | 在线天堂中文新版www | 中国美女牲交一级毛片 | 日本中文字幕在线视频站 | 日韩专区亚洲国产精品 | 亚洲 丝袜 制服 欧美 另类 | 手机看片精品高清国产日韩 | 日韩精品一区二区三区中文精品 | 在线观看91香蕉国产免费 | 新版bt天堂资源在线 | 日韩a级片在线观看 | 日本免费在线观看视频 | 天天天操| 视频二区欧美 | 青青青影院 | 天天澡天天碰天天狠伊人五月 | 青青国产成人久久激情91麻豆 | 午夜视频免费在线观看 | 色影影院 | 日本系列 1页 亚洲系列 | 亚洲刺激视频 | 日本欧美人xxxxx在线观看 | 天天晚上干白天干 |