当前位置: 移动技术网 > IT编程>开发语言>.net > .NET Core 3终结点不能映射控制器

.NET Core 3终结点不能映射控制器

2019年12月13日  | 移动技术网IT编程  | 我要评论

国家要案,诗歌知识,辽东学院地址

今天在学.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控制器方法

两种控制器使用的方法不一样,所以不能混淆使用

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网