2017-03-31
工具:Visual Studio 2017 Enterprise,環境:Windows 7 x64
續這篇
[研究] ASP.NET Core 1.1 MVC 6 入門(一) 開始
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6.html
Adding a controller
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-controller
內容不是完全翻譯,因為練習的心得,有增加、刪減圖片和文字。
(下圖) Visual Studio 2017 畫面
(下圖) 比較一下舊版 Visual Studio 2015 with Update 3 的畫面,舊版還會在 Views 目錄下多了一個 HelloWorld 目錄
ASP.NET MVC 的 URL 格式為
/[Controller]/[ActionName]/[Parameters] |
Visual Studio 2015 with Update 3 用 MVC 5 定義在 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 } ); } |
Visual Studio 2017 用 .NET Core 1.1 MVC 6 定義在 Startup.cs 檔案中
|
********************************************************************************
說明參數 [Controller] 控制器的用法
MVC
M (Model) :
V (View) :
C (Controller) : Controllers\HelloWorldController.cs 內容
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; // For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace MvcMovie.Controllers { public class HelloWorldController : Controller { // GET: /<controller>/ public IActionResult Index() { return View(); } } } |
換成
|
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,後面 HelloWorld 請手動加上
http://localhost:11621/HelloWorld/
********************************************************************************
說明參數 [ActionName] 控制器的用法
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,後面 HelloWorld/Welcome 請手動加上
http://localhost:11621/HelloWorld/Welcome
http://localhost:11621/HelloWorld/Welcome
表示叫用 HelloWorldContoller.cs 控制器中的 Welcome 方法
********************************************************************************
說明參數 [Parameters] 的用法
Visual Studio 2015 Update 3 的 MVC 5
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法如下
public string Welcome(string name, int numTimes = 1) { return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes); } |
在 Visual Studio 2017 的 .NET Core 1.1 MVC 6
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法如下
|
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,網址改為如下
http://localhost:11621/HelloWorld/Welcome?name=Scott&numtimes=4
********************************************************************************
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法的參數,讓它和 App_Start/RouteConfig.cs 中參數名稱 ID 相同
修改 Controllers\HelloWorldController.cs 的 Welcome() 方法如下
Visual Studio 2015 with Update 3 的 MVC 5
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 } ); } |
**********
Visual Studio 2017 .NET Core 1.1 MVC 6
public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}
在 Startup.cs 中
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,網址改為如下
http://localhost:11621/HelloWorld/Welcome/3?name=Rick
********************************************************************************
Visual Studio 2015 with Update 3 的 MVC 5
修改 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 Core 1.1 MVC 6 入門(一) 開始
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6.html
[研究] ASP.NET Core 1.1 MVC 6 入門(二)增加控制器
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6_31.html
****************************************
[研究] ASP.NET MVC 5入門(一)開始
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5_21.html
[研究] ASP.NET MVC 5入門(二)增加控制器(Controller)
[研究] ASP.NET MVC 5入門(三)增加檢視(View)
[研究] ASP.NET MVC 5入門(四)增加模型(Model)
[研究] ASP.NET MVC 5入門(五)建立 SQL Server LocalDB 的連線字串
[研究] ASP.NET MVC 5入門(六)從 Controller 存取 Model 的資料
[研究] ASP.NET MVC 5入門(七)瞭解 Edit Method 和 Edit View
[研究] ASP.NET MVC 5入門(八)增加搜尋 Method 和 View
[研究] ASP.NET MVC 5入門(九)增加新欄位
[研究] ASP.NET MVC 5入門(十)增加驗證 (Validation)
[研究] ASP.NET MVC 5入門(十一)瞭解 Detials 和 Delete Method
沒有留言:
張貼留言