.NET Core 3终结点不能映射控制器
程序员文章站
2022-05-29 09:17:39
今天在学.net core的时候发现了一个问题,终结点死活映射不了自己添加的控制器,后经过研究发现解决方法,可能这个问题不应该叫做问题,可是我是初学者,就把这个问题给拎出来。本人开发环境 VS2019+.Net Core 3.1,问题重现过程: 1.新建Web Core项目,选择空项目 2.新建文件 ......
今天在学.net core的时候发现了一个问题,终结点死活映射不了自己添加的控制器,后经过研究发现解决方法,可能这个问题不应该叫做问题,可是我是初学者,就把这个问题给拎出来。本人开发环境 vs2019+.net core 3.1,问题重现过程:
1.新建web core项目,选择空项目
2.新建文件夹“controller”,右键该文件夹->添加->控制器->api控制器-空->设置名称为“homecontroller.cs”
3.修改路由特性为 [route("[controller]")]
4.在该路由器类下添加index函数,返回test字符串
5.修改startup类中configure函数:
原代码:
app.useendpoints(endpoints => { endpoints.mapget("/", async context => { await context.response.writeasync("hello world!"); }); });
修改后的代码:
app.useendpoints(endpoints => { endpoints.mapcontrollerroute("default", "{controller=home}/{action=index}/{id?}"); });
运行程序显示404
然后将homecontroller中的两个特性删除就可以正常运行
原因是api控制器和mvc控制器是不一样的
mvc控制器通过url选择action方法
api控制器根据http请求方法的不同来选择api控制器方法
两种控制器使用的方法不一样,所以不能混淆使用
上一篇: JPA中实现双向一对一的关联关系
下一篇: 15.junit测试类使用及注解