日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

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

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

更新時間:2022-05-13 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

在ASP.NET中實現(xiàn)Model-View-Controller模式(四)

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

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

視圖的實現(xiàn)代碼與前部分相同。

模型

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

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;

}



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

控制器

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

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

}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 在线观看5g成人影院网站 | 国产一级持黄大片99久久 | 婷婷综合五月中文字幕欧美 | 怡红院在线影院 | 中文在线观看视频 | 天天躁日日躁狠狠躁 | 欧美极品bbbbⅹxxxx | 日韩在线视频一区二区三区 | 亚洲夜夜爱 | 日日夜夜伊人 | 99久久99这里只有免费的精品 | 99ee6热久久免费精品6 | 中文字幕一区在线观看视频 | 免费一级欧美片在线观免看 | 综合久久久久久中文字幕 | 97精品免费视频 | 在线免费看黄的网站 | 欧美一级欧美一级在线播放 | 狠狠综合久久综合网站 | 美女被叉叉的影院 | 国产99视频精品免视看7 | 波多野结衣在线视频播放 | 亚洲精品九色在线网站 | 亚洲三级在线视频 | 国产精品视频一区二区猎奇 | 国产99视频精品免费视频免里 | 国产日韩一区二区三区 | 性xxxx18免费观看 | 大香萑成人网免费视频 | 国产精品一区二区久久不卡 | 狠狠操中文字幕 | 美女mm131爽爽爽免费视色 | 久久狠狠躁免费观看 | 天天射视频 | 久久福利青草狠狠午夜 | 午夜在线观看完整高清免费 | 日本高清无吗免费播放 | 精品久久久久久久久久香蕉 | 日本一区二区三区高清在线观看 | 国产精品亚洲欧美一级久久精品 | 亚洲精品成人一区二区 |