欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

NetCore入门篇:(七)Net Core项目使用Controller之二

程序员文章站 2022-04-28 23:13:37
一、简介 1、说明Post,Get定义的区别。 2、说明如何路由定义。 二、Get、Post定义 1、api不定义访问方式时,同时支持get 和 post。如果定义某种方式,则仅支持某种方式。具体看代码及运行效果。 这里有个知识点,什么时候使用get,什么时候使用post,个人习惯能get则get, ......

一、简介


 1、说明Post,Get定义的区别。

2、说明如何路由定义。

 

二、Get、Post定义


1、api不定义访问方式时,同时支持get 和 post。如果定义某种方式,则仅支持某种方式。具体看代码及运行效果。

这里有个知识点,什么时候使用get,什么时候使用post,个人习惯能get则get,不能get则post,至于put,delete,从来不用。

 

api代码

NetCore入门篇:(七)Net Core项目使用Controller之二
    public class OneController : Controller
    {
        [HttpGet]
        public string GetString(string id)
        {
            return "get:" + id;
        }
        [HttpPost]
        public string PostString(string id)
        {
            return "post:" + id;
        }
        public string NullString(string id)
        {
            return "null:" + id;
        }
    }
View Code

 

html测试代码

NetCore入门篇:(七)Net Core项目使用Controller之二
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>示例代码</title>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script>
        $(function () {
            $.get("one/getstring", { id: "001" }, function (result) { console.log(result) });
            $.post("one/getstring", { id: "001" }, function (result) { console.log(result) });

            $.get("one/poststring", { id: "001" }, function (result) { console.log(result) });
            $.post("one/poststring", { id: "001" }, function (result) { console.log(result) });

            $.get("one/nullstring", { id: "001" }, function (result) { console.log(result) });
            $.post("one/nullstring", { id: "001" }, function (result) { console.log(result) });
        });
    </script>
</head><body></body>
</html>
View Code

 

结果

NetCore入门篇:(七)Net Core项目使用Controller之二

定义了httpget,则post返回404,定义了httppost则get返回404,不定义则都能访问。

 

 三、整个Controller定义路由


 1、直接上代码,一看就懂。仔细观察访问路径。

 

整个Controller定义路由:api代码

NetCore入门篇:(七)Net Core项目使用Controller之二
1     [Route("api/one")]
2     public class OneController : Controller
3     {
4         [Route("GetString")]
5         public string GetString(string id)
6         {
7             return "get:" + id;
8         }
9     }
View Code

 

整个Controller定义路由:html代码

NetCore入门篇:(七)Net Core项目使用Controller之二
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8" />
 5     <title>示例代码</title>
 6     <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 7     <script>
 8         $(function () {
 9             $.get("api/one/getstring", { id: "001" }, function (result) { console.log(result) });
10             $.post("api/one/getstring", { id: "001" }, function (result) { console.log(result) });
11         });
12     </script>
13 </head><body></body>
14 </html>
View Code

 

整个Controller定义路由:效果

NetCore入门篇:(七)Net Core项目使用Controller之二

 

 NetCore入门篇:(七)Net Core项目使用Controller之二

 

 

四、单个方法定义路由。


 1、直接上代码,一看就懂。仔细观察访问路径。

 

api代码

NetCore入门篇:(七)Net Core项目使用Controller之二
1     public class OneController : Controller
2     {
3         [Route("api2/one/getstring")]
4         public string GetString(string id)
5         {
6             return "get:" + id;
7         }
8     }
View Code

 

html代码,路径差别

NetCore入门篇:(七)Net Core项目使用Controller之二
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8" />
 5     <title>示例代码</title>
 6     <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 7     <script>
 8         $(function () {
 9             $.get("api2/one/getstring", { id: "001" }, function (result) { console.log(result) });
10             $.post("api2/one/getstring", { id: "001" }, function (result) { console.log(result) });
11         });
12     </script>
13 </head><body></body>
14 </html>
View Code

 

运行效果

NetCore入门篇:(七)Net Core项目使用Controller之二

 

 

 NetCore入门篇:(七)Net Core项目使用Controller之二

 

 

五、既定义路由又定义访问方式


1、直接上代码,一看就懂。仔细观察访问路径。

 

api代码

 

NetCore入门篇:(七)Net Core项目使用Controller之二
1     public class OneController : Controller
2     {
3         [HttpGet("api3/one/getstring")]
4         public string GetString(string id)
5         {
6             return "get:" + id;
7         }
8     }
View Code

 

html 代码

NetCore入门篇:(七)Net Core项目使用Controller之二
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8" />
 5     <title>示例代码</title>
 6     <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 7     <script>
 8         $(function () {
 9             $.get("api3/one/getstring", { id: "001" }, function (result) { console.log(result) });
10             $.post("api3/one/getstring", { id: "001" }, function (result) { console.log(result) });
11         });
12     </script>
13 </head><body></body>
14 </html>
View Code

 

运行效果

 

NetCore入门篇:(七)Net Core项目使用Controller之二

 

NetCore入门篇:(七)Net Core项目使用Controller之二

 

 

六、结论


 1、通过以上对比,可以知道,路由的定义有几种方式,并且可以*组合。

2、另一种是在Startup中定义,见下图。

3、在生产过程中,以上方法几乎不会用到,一般都是用Startup默认路由,因为我们只要一个可以访问的唯一地址而已。

 NetCore入门篇:(七)Net Core项目使用Controller之二