Nein, Nein und Nein. Gehen Sie und versuchen Sie den Controller-Code unten, wo wir die "LoadCustomer" überladen haben.
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult LoadCustomer()
{
return Content("LoadCustomer");
}
public ActionResult LoadCustomer(string str)
{
return Content("LoadCustomer with a string");
}
}
Wenn Sie versuchen, die Aktion "LoadCustomer" aufzurufen, erhalten Sie eine Fehlermeldung wie in der folgenden Abbildung dargestellt.
Polymorphismus ist ein Teil der C#-Programmierung, während HTTP ein Protokoll ist. HTTP versteht keinen Polymorphismus. HTTP arbeitet mit Konzepten oder URLs und URLs können nur eindeutige Namen haben. HTTP implementiert also keinen Polymorphismus.
Um dasselbe zu beheben, müssen wir das Attribut "ActionName" verwenden.
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult LoadCustomer()
{
return Content("LoadCustomer");
}
[ActionName("LoadCustomerbyName")]
public ActionResult LoadCustomer(string str)
{
return Content("LoadCustomer with a string");
}
}
Wenn Sie nun die URL "Customer/LoadCustomer" aufrufen, wird die Aktion "LoadCustomer" aufgerufen und bei der URL-Struktur "Customer/LoadCustomerByName" wird die Aktion "LoadCustomer(string str)" aufgerufen.
Die obige Antwort habe ich aus diesem Codeproject-Artikel entnommen --> MVC Action-Überladung