您现在的位置是:网站首页> 编程资料编程资料
ASP.NET Core MVC解决控制器同名Action请求不明确的问题_实用技巧_
2023-05-24
380人已围观
简介 ASP.NET Core MVC解决控制器同名Action请求不明确的问题_实用技巧_
在Asp.Net Core MVC Web应用程序的开发过程当中,如果需要在控制器内使用同名的Action,则会出现如下图所示的问题:

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/routing?view=aspnetcore-5.0
代码片段如下:
` //GET: /HelloWorld/Welcome public string Welcome() { return "这是HelloWorld控制器下的Welcome Action方法....."; } //带参数的Action //GET: /HelloWorld/Welcome?name=xxxx&type=xxx public string Welcome(string name, int type) { //使用Http Verb谓词特性路由模板配置解决请求Action不明确的问题 //AmbiguousMatchException: The request matched multiple endpoints. Matches: //[Controller]/[ActionName]/[Parameters] //中文字符串需要编码 //type为可解析为int类型的数字字符串 string str = HtmlEncoder.Default.Encode($"Hello {name}, Type is: {type}"); return str; }`只要在浏览器的Url地址栏输入"/HelloWorld/Welcome"这个路由地址段时,Asp.Net Core的路由解析中间件便抛出上图所示的请求操作不明确的问题。
根据官方文档的描述,可以在控制器内某一个同名的Action方法上添加HTTP Verb Attribute特性的方式(为此方法重新声明一个路由Url片段)来解决此问题。对HelloWorld控制器内,具有参数的"Welcome"这个Action添加HTTPGetAttr
修改后的代码如下:
//带参数的Action //GET: /HelloWorld/Welcome?name=xxxx&type=xxx [HttpGet(template:"{controller}/WelcomeP", Name = "WelcomeP")] public string Welcome(string name, int type) { string str = HtmlEncoder.Default.Encode($"Hello {name}, Type is: {type}"); return str; }请求Url: Get -> "/HelloWorld/Welcome?name=xxxxx&type=0"



到此这篇关于ASP.NET Core MVC解决控制器同名Action请求不明确的问题的文章就介绍到这了,更多相关ASP.NET Core MVC控制器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
- ASP.NET Core MVC创建控制器与依赖注入讲解
- 详解如何在ASP.NET Core中编写高效的控制器
- Asp.Net Core控制器如何接收原始请求正文内容详解
- Asp.net Core MVC中怎么把二级域名绑定到特定的控制器上
- ASP.NET MVC从视图传参到控制器的几种形式
- 详解Asp.Net MVC——控制器与动作(Controller And Action)
- ASP.NET MVC从控制器传递数据到视图的四种方式详解
- Asp.net MVC中获取控制器的名称的方法
- ASP.NET中MVC从后台控制器传递数据到前台视图的方式
- ASP.NET MVC 控制器与视图
- ASP.NET MVC从控制器中获取URL值
相关内容
- Asp.Net Core 调用第三方Open API查询物流数据的示例_实用技巧_
- Asp.Net Core中创建多DbContext并迁移到数据库的步骤_实用技巧_
- 记一次EFCore类型转换错误及解决方案_实用技巧_
- 使用 HttpReports 监控 .NET Core 应用程序的方法_实用技巧_
- 如何在Asp.Net Core中集成Refit_实用技巧_
- .Net Core实现选择数据热更新让服务感知配置的变化_实用技巧_
- EFCore 通过实体Model生成创建SQL Server数据库表脚本_实用技巧_
- ASP.NET Core WebApi版本控制的实现_实用技巧_
- ASP.NET Core对不同类型的用户进行区别限流详解_实用技巧_
- 详解如何在ASP.NET Core中编写高效的控制器_实用技巧_
