.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文件里配置的,看这里,规则其实差不多。

 

posted @ 2023-05-12 13:45  luytest  阅读(89)  评论(0编辑  收藏  举报