服务器之家

服务器之家 > 正文

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

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部