2016-06-21
這篇是參考下面這篇的學習,不過工具從 Visual Studio 2013 改成 Visual Studio 2015 with Update 2 繁體中文版;網頁上有提到一篇新的改用 Visual Studio 2015,但是那篇要另外安裝 ASP.NET Core,而目前最新為 ASP.NET Code 1.0.0 RC2,並非正式版,所以暫時不想安裝和參考那篇。
內容不是完全翻譯,因為練習的心得,有增加、刪減圖片和文字。
Getting Started with ASP.NET MVC 5
http://www.asp.net/mvc/overview/getting-started/introduction/getting-started
[研究] ASP.NET MVC 5入門(一)開始
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5_21.html
2.Adding a Controller
http://www.asp.net/mvc/overview/getting-started/introduction/adding-a-controller
ASP.NET MVC 的 URL 格式為
/[Controller]/[ActionName]/[Parameters] |
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } |
********************************************************************************
說明參數 [Controller] 控制器的用法
MVC
M (Model) :
V (View) :
C (Controller) : Controllers\HelloWorldController.cs 內容
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcMovie.Controllers { public class HelloWorldController : Controller { // GET: HelloWorld public ActionResult Index() { return View(); } } } |
換成
using System.Web; using System.Web.Mvc; namespace MvcMovie.Controllers { public class HelloWorldController : Controller { // // GET: /HelloWorld/ public string Index() { return "This is my <b>default</b> action..."; } // // GET: /HelloWorld/Welcome/ public string Welcome() { return "This is the Welcome action method..."; } } } |
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,後面 HelloWorld 請手動加上
http://localhost:38857/HelloWorld/
********************************************************************************
說明參數 [ActionName] 控制器的用法
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,後面 HelloWorld/Welcome 請手動加上
http://localhost:38857/HelloWorld/Welcome
http://localhost:38857/HelloWorld/Welcome
表示叫用 HelloWorldContoller.cs 控制器中的 Welcome 方法
********************************************************************************
說明參數 [Parameters] 的用法
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法如下
public string Welcome(string name, int numTimes = 1) { return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes); } |
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,網址改為如下
http://localhost:38857/HelloWorld/Welcome?name=Scott&numtimes=4
********************************************************************************
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法的參數,讓它和 App_Start/RouteConfig.cs 中參數名稱 ID 相同
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法如下
public string Welcome(string name, int ID = 1) { return HttpUtility.HtmlEncode("Hello " + name + ", ID: " + ID); } |
定義在 App_Start/RouteConfig.cs 檔案中
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } |
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,網址改為如下
http://localhost:38857/HelloWorld/Welcome/3?name=Rick
********************************************************************************
修改 App_Start/RouteConfig.cs 中路由(route)
修改 App_Start/RouteConfig.cs 檔案中
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } routes.MapRoute( name: "Hello", url: "{controller}/{action}/{name}/{id}" ); ); } |
(完)
[研究] ASP.NET MVC 5入門(一)開始
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5_21.html
[研究] ASP.NET MVC 5入門(二)增加控制器(Controller)
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5controller.html
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5controller.html
沒有留言:
張貼留言