服务器之家

服务器之家 > 正文

ASP.NET Core MVC解决控制器同名Action请求不明确的问题

时间:2021-12-09 14:38     来源/作者:zzx

在asp.net core mvc web应用程序的开发过程当中,如果需要在控制器内使用同名的action,则会出现如下图所示的问题:

ASP.NET Core MVC解决控制器同名Action请求不明确的问题

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/routing?view=aspnetcore-5.0
代码片段如下:

  1. //GET: /HelloWorld/Welcome 
  2. public string Welcome() 
  3. return "这是HelloWorld控制器下的Welcome Action方法....."
  1. //带参数的Action 
  2.   //GET: /HelloWorld/Welcome?name=xxxx&type=xxx 
  3.   public string Welcome(string name, int type) 
  4.   { 
  5.     //使用Http Verb谓词特性路由模板配置解决请求Action不明确的问题 
  6.     //AmbiguousMatchException: The request matched multiple endpoints. Matches: 
  7.     //[Controller]/[ActionName]/[Parameters] 
  8.     //中文字符串需要编码 
  9.     //type为可解析为int类型的数字字符串 
  10.     string str = HtmlEncoder.Default.Encode($"Hello {name}, Type is: {type}"); 
  11.     return str; 
  12.   }` 

只要在浏览器的url地址栏输入"/helloworld/welcome"这个路由地址段时,asp.net core的路由解析中间件便抛出上图所示的请求操作不明确的问题。
根据官方文档的描述,可以在控制器内某一个同名的action方法上添加http verb attribute特性的方式(为此方法重新声明一个路由url片段)来解决此问题。对helloworld控制器内,具有参数的"welcome"这个action添加httpgetattr
修改后的代码如下:

  1. //带参数的Action 
  2. //GET: /HelloWorld/Welcome?name=xxxx&type=xxx 
  3. [HttpGet(template:"{controller}/WelcomeP", Name = "WelcomeP")] 
  4. public string Welcome(string name, int type) 
  5. string str = HtmlEncoder.Default.Encode($"Hello {name}, Type is: {type}"); 
  6. return str; 

请求url: get -> "/helloworld/welcome?name=xxxxx&type=0"

ASP.NET Core MVC解决控制器同名Action请求不明确的问题

ASP.NET Core MVC解决控制器同名Action请求不明确的问题

ASP.NET Core MVC解决控制器同名Action请求不明确的问题

到此这篇关于asp.net core mvc解决控制器同名action请求不明确的问题的文章就介绍到这了,更多相关asp.net core mvc控制器内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/zhaozix-blog/archive/2021/03/02/zzx_aspnetcore_action01.html

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部