ASP.NET Core MVC解决控制器同名Action请求不明确的问题
更新时间:2021年03月06日 10:27:39 作者:zzx
这篇文章主要介绍了ASP.NET Core MVC解决控制器同名Action请求不明确的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在Asp.Net Core MVC Web应用程序的开发过程当中,如果需要在控制器内使用同名的Action,则会出现如下图所示的问题:
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 mvc webapi 实用的接口加密方法示例如何在Asp.Net Core MVC中处理null值的实现创建一个ASP.NET MVC5项目的实现方法(图文)ASP.NET Core MVC如何实现运行时动态定义Controller类型asp.net mvc core管道及拦截器的理解ASP.NET Core MVC获取请求的参数方法示例ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现在ASP.NET Core Mvc集成MarkDown的方法ASP.NET Core MVC 中实现中英文切换的示例代码如何使用签名保证ASP.NET MVC OR WEBAPI的接口安全
ASP.NET
Core
MVC
控制器
相关文章
updatepanel用法之triggers使用示例triggers有的两种触发器asyncpostbacktrigger和postbacktrigger,下面是使用示例,需要的朋友可以参考下 2014-03-03
ASP.NET网站聊天室的设计与实现(第3节)这篇文章主要介绍了ASP.NET网站聊天室的设计与实现,了解Session、Application对象的属性和事件,并且掌握利用它们在页面间保存和传递数据的方法,需要的朋友可以参考下 2015-08-08
教你Asp.net下使用mysql数据库的步骤近日,在项目中遇到了麻烦,客户非要求使用mysql数据库,对于我从来么有使用过的人来说,很是头疼,最后还是硬着头皮弄好了。期间也遇到了各种各样的问题,现在把他整理在此,希望对那些和我一样从来没有使用过的人,能快速入手 2012-05-05
asp.net(c#)动态修改webservice的地址和端口(动态修改配置文件)这个问题其实并没有我想像的那个复杂,我们都知道怎么直接修改吧,那就是修改WebConfig文件的配置节
2012-12-12
ASP.NET Core利用UrlFirewall对请求进行过滤的方法示例这篇文章主要给大家介绍了关于ASP.NET Core利用UrlFirewall对请求进行过滤的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2018-05-05
C#中HTML字符转换函数分享在ASP.Net中经常会从网面中取数据或更新网页的显示。因为HTML中有些特殊字符如<, >, &等,显示实际值不一致,造成保存到数据库再取出来时会不一样 2012-07-07
ASP.NET中Web API的简单实例Web API框架是一个面向Http协议的通信框架,Web API 框架是一个面向Http协议的通信框架。Web API 框架目前支持两种数据格式的序列化:Json 及 Xml。在不做任何配置的情况下,则 Web API 会自动把数据使用xml进行序列化,否则使用 json 序列化,需要的朋友可以参考下 2015-10-10
ASP.NET生成树形显示的GridView实现思路生成树形结构的表格数据(EasyUI也有TreeGrid,此处只是提供一个思路),可以扩展单击展开/收缩节点,喜欢的朋友可以了解下啊,或许本文对你学习GridView有所帮助 2013-02-02
在.NET中利用XMLHTTP下载文件的代码在.NET中利用XMLHTTP下载文件的代码… 2007-03-03
asp.net 特定目录form验证前几听我的一个同事说form验证,我也只是听说过,说是一个很简单的验证,最近也在做一个小型的企业网站(因为刚进公司不久,老板就给了单独一个小项目练练手)。 2009-06-06
最新评论

评论(0)