.Net Core Mvc 2. VS2022 + Core6.0 + Mvc 添加控制器
Controllers 控制器
我们的控制器都放在Controllers 文件夹
在项目的Controllers文件夹上右键添加,选择控制器(空白),添加一个HelloWorldController的控制器。
在控制器中添加一个新的action,起名叫Welcome
public string Welcome() { return "this is Welcome action"; }
以我本机为例,访问这个Action
https://localhost:7106/HelloWorld/Welcome,页面正常返回字符串 “this is Welcome action”。
Mvc默认的路由结构是/[Controller]/[ActionName]/[Parameters],默认的配置在Program.cs文件中
app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
修改action,加上参数
public string Welcome(string userName) { return "this is Welcome action" + userName; }
参数可以给默认值
public string Welcome(string userName = "jack") { return "this is Welcome action" + userName; }
加上编码防止恶意输入
public string Welcome(string userName = "jack") { return HtmlEncoder.Default.Encode(userName); }
但是这样输入中文时会变成乱码
修改为
public string Welcome(string userName = "张三") { return HtmlEncoder.Create(UnicodeRanges.All).Encode(userName); }
增加参数id,修改输出内容
public string Welcome(int id,string userName = "张三") { return HtmlEncoder.Create(UnicodeRanges.All).Encode($"{id}:{userName}"); }
在默认的路由规则中id是可以不在url中指定的,默认第一个就是id
app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
访问时带上参数
/HelloWorld/Welcome/114?username=李四
结果
framework的是在App_Start/RouteConfig.cs文件里配置的,看这里,规则其实差不多。