首頁 > 後端開發 > C++ > ASP.NET MVC控制器方法是否可以超載,如果沒有,我該如何達到類似的結果?

ASP.NET MVC控制器方法是否可以超載,如果沒有,我該如何達到類似的結果?

Mary-Kate Olsen
發布: 2025-01-26 14:21:09
原創
691 人瀏覽過

Can ASP.NET MVC Controller Methods Be Overloaded, and If Not, How Can I Achieve a Similar Result?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板