ASP.NET MVC控制器方法重載詳解及替代方案
問題:
ASP.NET MVC控制器能否重載方法?為什麼我的重載嘗試失敗了?我收到的錯誤訊息是:
「控制器類型'MyController'上的'MyMethod'操作的當前請求在以下操作方法之間不明確:」
解答:
雖然錯誤訊息顯示不支援方法重載,但可以使用[ActionName]
特性達到類似的效果。
在ASP.NET MVC中,同一個控制器內不允許方法重載。但是,您可以使用[ActionName]
特性為方法指定不同的名稱。這允許您為具有相同HTTP方法(例如GET或POST)的操作使用不同的方法簽署。
要模擬方法重載,請將[ActionName]
特性加入要重新命名的方法上。例如:
<code class="language-csharp">[ActionName("MyOverloadedName")] public ActionResult MyMethod(int id) { // 重载方法的代码 }</code>
要注意的是,使用[ActionName]
並非真正的重載方法。它僅僅改變了路由到該方法的操作名稱。因此,對於處理相同HTTP方法的方法,您仍然需要使用不同的操作名稱。
更多信息,請參考Phil Haack的文章:https://www.php.cn/link/8ab84c57bf234ea2e3bf8330b47c2db1
以上是ASP.NET MVC控制器方法是否可以超載,如果沒有,我該如何達到類似的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!