初學ASP.NET MVC 學習筆記(五)-自訂Helper
初學 ASP.NET MVC 學習筆記(七)-Server端驗證
黑暗執行緒 -- ASP.NET MVC 3 豬走路 範例 (View Engine,選Razor)
回目錄
回首頁
學習程式設計過程中總會碰到疑難雜症,而這些疑難雜症又不是一時能解決,不論是以往或是從未遇過的,都可將這些在程式設計上所碰到問題的解決方法筆記下來,或許解決了就算了,但等到下次有相同問題時,可將這程式設計筆記再拿來參考,就不枉做筆記了。
2011年11月15日 星期二
ASP.NET MVC 與 Linq to SQL 結合
ASP.NET MVC 資料庫應用可以使用微軟的新技術,Linq To Sql。
可以先參考 << 極意之道次世代 .NET Framework 3.5資料庫開發聖典ASP.NET篇,黃忠成,2008 >> 這本書,書內詳細說明 Linq To Sql 在 Visual Studio 2008 如何開始使用、語法、結合、....等等,有興趣的鄉民大可去參考這本書,這裡就不另贅述。
這裡是使用微軟的範例資料庫: northwind (北風)。
說著說著,我就已經弄好 Linq To Sql 類別,我抓了三個資料表,分別是 Products、Orders、Order_Details。
以下實作方法參考:初學ASP.NET MVC 學習筆記(六)-包裝Model
首先,我只要顯示出 Products 資料表內的資料,先建立一個資料夾在根目錄,我命名為 MyData,底下增一個類別為 Products.cs 檔案,大概內容為:
最後在 Index.aspx 程式碼中,可以是用類似 C# 程是語言的方式將 Products 的資料條列出來:
最後執行頁面如下:
回目錄
回首頁
可以先參考 << 極意之道次世代 .NET Framework 3.5資料庫開發聖典ASP.NET篇,黃忠成,2008 >> 這本書,書內詳細說明 Linq To Sql 在 Visual Studio 2008 如何開始使用、語法、結合、....等等,有興趣的鄉民大可去參考這本書,這裡就不另贅述。
這裡是使用微軟的範例資料庫: northwind (北風)。
說著說著,我就已經弄好 Linq To Sql 類別,我抓了三個資料表,分別是 Products、Orders、Order_Details。
以下實作方法參考:初學ASP.NET MVC 學習筆記(六)-包裝Model
首先,我只要顯示出 Products 資料表內的資料,先建立一個資料夾在根目錄,我命名為 MyData,底下增一個類別為 Products.cs 檔案,大概內容為:
using MvcTest.Models; // 必要加入參考 namespace MvcTest.MyData { public class Products { public IQueryable<Models.Products> _Products { get; set; } } }接著在 Controllers\HomeController.cs 程式碼中加入一些語法,因為是在 Index 顯示,所以在 Index 類別動點手腳:
using MvcTest.Models; using MvcTest.MyData; namespace MvcTest.Controllers { [HandleError] public class HomeController : Controller { private NorthwindDataContext db = new NorthwindDataContext(); private MyData.Products p = new MyData.Products(); public HomeController() { ... } public ActionResult Index() { p.Products = from d in db.Products select d; return View(p); } ...... } }我特別在類別上註記它來自於哪一個資料夾中,目的是怕命名的名稱會與 Linq To Sql 類別名稱相同,所以特此註記。
最後在 Index.aspx 程式碼中,可以是用類似 C# 程是語言的方式將 Products 的資料條列出來:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcTest.MyData.Products>" %> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <table> <% foreach (var item in Model._Products) { %> <tr> <td> <%= Html.Encode(item.ProductID) %> </td> <td> <%= Html.Encode(item.ProductName) %> </td> </tr> <% } %> </table> </asp:Content>
最後執行頁面如下:
回目錄
回首頁
標籤:
ASP.NET 程式設計筆記
2011年11月6日 星期日
ASP.NET MVC 細部說明
接續上一篇文章 ASP.NET MVC 介紹和實作 ,接下來做 MVC 的細部說明。
在 \Controllers\HomeController.cs 程式碼中,將 MyMvc 函式程式碼改為以下所示:
在 \Views\Home\MyMvc.aspx 程式碼中,將 ID 為 Content2 內標籤為 h2 的內容改為以下所示:
執行後,就會顯示 Hello World 字樣(下圖所示):
可能你會注意到,在上圖所展現的網址為 http://localhost/Home/MyMvc ,這是由於 Global.asax 應用程式的影響,我們可以對它做一些改變,使得生活變得更美好。
參考:Global.asax 檔案
那要怎麼對 Global.asax 應用程式動手腳呢?
針對 Global.asax,可以做以下改變:
我將 id 參數改為帶兩個參數值,strName 和 strAge,在 \Controllers\HomeController.cs 程式碼中,由於兩參數為 strName 和 strAge,所以如果都要使用參數,兩個參數都要引用,如以下程式碼所示:
在 \Views\Home\MyMvc.aspx 程式碼中,如果需要引用到函式中所設定的參數,則用 <%= ViewData["parameter"] %>,其他還有甚麼功能等我研究後會再發文章。所以程式碼改為如以下所示:
最後執行要到 http://localhost/Home/MyMvc/DavidKuo/23 才能看出它的效果,如下圖所示:
回目錄
回首頁
在 \Controllers\HomeController.cs 程式碼中,將 MyMvc 函式程式碼改為以下所示:
public ActionResult MyMvc(string id) { ViewData["Msg"] = "Hello World!"; return View(); }
在 \Views\Home\MyMvc.aspx 程式碼中,將 ID 為 Content2 內標籤為 h2 的內容改為以下所示:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2><%=ViewData["Msg"] %></h2> </asp:Content>
執行後,就會顯示 Hello World 字樣(下圖所示):
可能你會注意到,在上圖所展現的網址為 http://localhost/Home/MyMvc ,這是由於 Global.asax 應用程式的影響,我們可以對它做一些改變,使得生活變得更美好。
參考:Global.asax 檔案
那要怎麼對 Global.asax 應用程式動手腳呢?
針對 Global.asax,可以做以下改變:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}/{strName}/{strAge}", // URL 及參數 new { controller = "Home", action = "Index", strName = UrlParameter.Optional, strAge = UrlParameter.Optional } // 參數預設值 ); }
我將 id 參數改為帶兩個參數值,strName 和 strAge,在 \Controllers\HomeController.cs 程式碼中,由於兩參數為 strName 和 strAge,所以如果都要使用參數,兩個參數都要引用,如以下程式碼所示:
public ActionResult MyMvc(string strName, string strAge) { ViewData["Msg"] = "Hello World!"; ViewData["Name"] = strName; ViewData["Age"] = strAge; return View(); }
在 \Views\Home\MyMvc.aspx 程式碼中,如果需要引用到函式中所設定的參數,則用 <%= ViewData["parameter"] %>,其他還有甚麼功能等我研究後會再發文章。所以程式碼改為如以下所示:
<h2><%=ViewData["Msg"] %></h2> My Name is <%=ViewData["Name"] %>, I'm <%=ViewData["Age"]%> years old.
最後執行要到 http://localhost/Home/MyMvc/DavidKuo/23 才能看出它的效果,如下圖所示:
回目錄
回首頁
標籤:
ASP.NET 程式設計筆記
訂閱:
文章
(
Atom
)



