基于 MVC 的应用包含:
-
更新后的数据将写入到数据库。
-
此 UI 通常会显示模型数据。
-
本教程的后续部分中将介绍路由数据。
例如,处理视图代码时不必依赖业务逻辑代码。
添加控制器
-
Visual Studio
-
-
在“添加基架”对话框中,选择“MVC 控制器 - 空”
-
在“添加空 MVC 控制器”对话框中,输入 HelloWorldController 并选择“ADD” 。
-
-
Visual Studio Code
选择“EXPLORER”图标,然后按住 Control 并单击(右键单击)“控制器”,选择“新建文件”,然后将新文件命名为 HelloWorldController.cs 。
- Visual Studio for Mac
-
ASP.NET Core”和“MVC 控制器类”。
将控制器命名为“HelloWorldController”。
将“Controllers/HelloWorldController.cs”的内容替换为以下内容 :
using Microsoft.AspNetCore.Mvc; using System.Text.Encodings.Web; namespace MvcMovie.Controllers { public class HelloWorldController : Controller { // // GET: /HelloWorld/ public string Index() { return "This is my default action..."; } // // GET: /HelloWorld/Welcome/ public string Welcome() { return "This is the Welcome action method..."; } } }
请注意每个方法前面的注释。
HTTP 终结点是 Web 应用程序中可定向的 URL(例如 https://localhost:5001/HelloWorld),其中结合了所用的协议 HTTPS、TCP 端口等 Web 服务器的网络位置 localhost:5001,以及目标 URI HelloWorld。
本教程稍后将使用基架引擎生成 HTTP POST 方法,用于更新数据。
Index 方法返回一个字符串。
URL 路由逻辑使用如下格式来确定调用的代码:
/[Controller]/[ActionName]/[Parameters]
在 Startup.cs 文件的 Configure 方法中设置路由格式 。
app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });
如果浏览到应用且不提供任何 URL 段,它将默认为上面突出显示的模板行中指定的“Home”控制器和“Index”方法。
本教程的后续部分中将介绍路由数据。
目前尚未使用 URL 的 [Parameters] 部分。
更改 Welcome 方法以包括以下代码中显示的两个参数:
// GET: /HelloWorld/Welcome/ // Requires using System.Text.Encodings.Web; public string Welcome(string name, int numTimes = 1) { return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}"); }
前面的代码:
- 使用 C# 可选参数功能指示,未为
numTimes参数传递值时该参数默认为 1。 - 使用
HtmlEncoder.Default.Encode防止恶意输入(即 JavaScript)损害应用。 - 内插字符串。
运行应用并浏览到:
https://localhost:{PORT}/HelloWorld/Welcome?name=Rick&numtimes=4
模型绑定。
& 字符将字段/值对分隔开。
将 Welcome 方法替换为以下代码:
public string Welcome(string name, int ID = 1) { return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}"); }
运行应用并输入以下 URL:https://localhost:{PORT}/HelloWorld/Welcome/3?name=Rick
后面的 ?(id? 中)表示 id 参数可选。
app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });
可在下一教程中执行该操作。
其他教程:
将视图添加到 ASP.NET Core MVC 应用
将模型添加到 ASP.NET Core MVC 应用