<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

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

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

      [摘要]在ASP.NET中實現Model-View-Controller模式(一) 背景: 當利用ASP.NET創建Web應用程序時,基于程序的復雜性,必須把程序分割成不同的部分以減少代碼的重復及減少日后變...
      在ASP.NET中實現Model-View-Controller模式(一)



      背景:



      當利用ASP.NET創建Web應用程序時,基于程序的復雜性,必須把程序分割成不同的部分以減少代碼的重復及減少日后變革時所引起的改動。



      實現策略:



      為了解釋如何在ASP.NET中實現(MVC)模型-視圖-控制器模式,以及說明將軟件分離成模型、視圖、及控制器角色的好處,在此以一個示例程序為例進行說明。這個示例程序是一個帶有下拉框的單頁程序,它的功能是顯示數據庫中的數據。如下圖。





      當用戶在下拉框中選擇了一個記錄,并單擊Submit按鈕的時候,程序從數據庫中搜索與選中記錄相關的數據庫記錄,并以列表的形式顯示出來。下面,將以三種不同的實現方式進行實現。



      單頁模式



      在ASP.NET中有許多解決這個問題的辦法,其中最簡單也是最直接的辦法就是把所有的代碼都放到一個文件中,并起名為Solution.aspx,實現代碼如下:

      <%@ Import Namespace="System.Data" %>

      <%@ Import Namespace="System.Data.SqlClient" %>

      <html>

      <head>

      <title>start</title>

      <script language="c#" runat="server">

      void Page_Load(object sender, System.EventArgs e)

      {

      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");



      recordingSelect.DataSource = ds;

      recordingSelect.DataTextField = "title";

      recordingSelect.DataValueField = "id";

      recordingSelect.DataBind();

      }



      void SubmitBtn_Click(Object sender, EventArgs e)

      {

      String selectCmd =

      String.Format(

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

      (string)recordingSelect.SelectedItem.Value);



      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");



      MyDataGrid.DataSource = ds;

      MyDataGrid.DataBind();

      }

      </script>

      </head>

      <body>

      <form id="start" method="post" runat="server">

      <h3>Recordings</h3>

      Select a Recording:<br />

      <asp:dropdownlist id="recordingSelect" runat="server" />

      <asp:button runat="server" text="Submit" OnClick="SubmitBtn_Click" />

      <p/>

      <asp:datagrid id="MyDataGrid" runat="server" width="700"

      backcolor="#ccccff" bordercolor="black" showfooter="false"

      cellpadding="3" cellspacing="0" font-name="Verdana"

      font-size="8pt" headerstyle-backcolor="#aaaadd"

      enableviewstate="false" />

      </form>

      </body>

      </html>



      這個實現文件包含了模型、視圖、控制器這三種角色,但是沒有將它們分割為不同的文件或類。其中的視圖對象用HTML實現,用一個數據綁定控件來顯示從數據庫返回的DataSet中的數據。模型角色在Page_Load 和 SubmitBtn_Click函數中實現。而控制器角色并沒有顯式的實現,而是由ASP.NET隱式實現。程序運行時,當用戶發出頁面的請求,頁面隨著用戶的


      日韩精品一区二区三区高清