2011年11月6日 星期日

ASP.NET MVC 細部說明

接續上一篇文章 ASP.NET MVC 介紹和實作 ,接下來做 MVC 的細部說明。

在 \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 才能看出它的效果,如下圖所示:

回目錄
回首頁




沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...