ASP.NET Core MVC解決控制器同名Action請(qǐng)求不明確的問題
在Asp.Net Core MVC Web應(yīng)用程序的開發(fā)過程當(dāng)中,如果需要在控制器內(nèi)使用同名的Action,則會(huì)出現(xiàn)如下圖所示的問題:

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方法.....";
}
//帶參數(shù)的Action
//GET: /HelloWorld/Welcome?name=xxxx&type=xxx
public string Welcome(string name, int type)
{
//使用Http Verb謂詞特性路由模板配置解決請(qǐng)求Action不明確的問題
//AmbiguousMatchException: The request matched multiple endpoints. Matches:
//[Controller]/[ActionName]/[Parameters]
//中文字符串需要編碼
//type為可解析為int類型的數(shù)字字符串
string str = HtmlEncoder.Default.Encode($"Hello {name}, Type is: {type}");
return str;
}`
只要在瀏覽器的Url地址欄輸入"/HelloWorld/Welcome"這個(gè)路由地址段時(shí),Asp.Net Core的路由解析中間件便拋出上圖所示的請(qǐng)求操作不明確的問題。
根據(jù)官方文檔的描述,可以在控制器內(nèi)某一個(gè)同名的Action方法上添加HTTP Verb Attribute特性的方式(為此方法重新聲明一個(gè)路由Url片段)來解決此問題。對(duì)HelloWorld控制器內(nèi),具有參數(shù)的"Welcome"這個(gè)Action添加HTTPGetAttr
修改后的代碼如下:
//帶參數(shù)的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;
}
請(qǐng)求Url: Get -> "/HelloWorld/Welcome?name=xxxxx&type=0"



到此這篇關(guān)于ASP.NET Core MVC解決控制器同名Action請(qǐng)求不明確的問題的文章就介紹到這了,更多相關(guān)ASP.NET Core MVC控制器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
增加asp.net應(yīng)用程序性能的20種方法(簡(jiǎn)單有效)
增加asp.net應(yīng)用程序性能的20種方法小結(jié),需要的朋友可以參考下,對(duì)于服務(wù)器也需要一些設(shè)置。2010-01-01
先裝了FRAMEWORK,后裝IIS導(dǎo)致asp.net頁面無法訪問的解決方法
如果先裝了FRAMEWORK,后裝IIS。有可能沒有在IIS中注冊(cè),就會(huì)導(dǎo)致在頁面中無法訪問的情況2012-01-01
asp.net 頁面版文本框智能提示JSCode (升級(jí)版)
模擬百度,Google智能提示,非與服務(wù)器端交互的,數(shù)據(jù)源來自已經(jīng)綁定好的下拉列表。純客戶端腳本 升級(jí)版2009-12-12
ASP.NET獲取各級(jí)目錄Server.MapPath詳解全
ASP.NET獲取各級(jí)目錄Server.MapPath詳解全,需要的朋友可以參考下。2011-12-12
作業(yè)調(diào)度框架Quartz.net用法詳解
本文詳細(xì)講解了作業(yè)調(diào)度框架Quartz.net的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
asp.net GridView模板列中實(shí)現(xiàn)選擇行功能
近來在項(xiàng)目中用到了GridView控件,用它實(shí)現(xiàn)添加、修改、刪除、選擇、顯示復(fù)雜表頭等功能2010-07-07
讓Silverlight 2.0動(dòng)畫動(dòng)起來Making Silverlight 2.0 animation Start(
Microsoft Expression Blend 2 制作動(dòng)畫個(gè)人感覺倒像3DMAX 可以自動(dòng)捕捉關(guān)鍵幀2008-11-11
ASP.NET MVC:Filter和Action的執(zhí)行介紹
ASP.NET MVC之Filter和Action的執(zhí)行介紹,需要的朋友可以參考2012-11-11
Asp.Net 網(wǎng)站性能優(yōu)化之緩字決 (上) 緩沖寫數(shù)據(jù)
通常情況下Asp.Net 網(wǎng)站的底層數(shù)據(jù)存儲(chǔ)都是關(guān)系數(shù)據(jù)庫(kù),關(guān)系數(shù)據(jù)庫(kù)資源比較昂貴,而且也很容易造成瓶頸。緩字決文章就是為大家介紹如何有效使用緩存,異步寫緩沖數(shù)據(jù)庫(kù)的壓力,從而保證網(wǎng)站的性能。2010-06-06

