在 \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 才能看出它的效果,如下圖所示:
回目錄
回首頁
沒有留言 :
張貼留言