Нет, Нет и Нет. Идите и попробуйте код контроллера ниже, где мы загрузили «LoadCustomer».
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult LoadCustomer()
{
return Content("LoadCustomer");
}
public ActionResult LoadCustomer(string str)
{
return Content("LoadCustomer with a string");
}
}
Если вы попытаетесь вызвать действие «LoadCustomer», вы получите ошибку как показанном на рисунке ниже.
[/g1]
Полиморфизм является частью программирования на C #, а HTTP - протоколом. HTTP не понимает полиморфизм. HTTP работает над концепцией или URL-адресом, а URL-адрес может иметь только уникальное имя. Таким образом, HTTP не реализует полиморфизм.
Чтобы исправить то же самое, нам нужно использовать атрибут «ActionName».
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");
}
}
Итак, теперь, если вы вызываете URL-адрес «Клиент» / LoadCustomer "действие" LoadCustomer "будет вызываться и со структурой URL" Customer / LoadCustomerByName "вызывается" LoadCustomer (string str) ".
[/g2]
[/g3]
Вышеупомянутый ответ я взял из этой статьи кодепроекта -> Перегрузка действием MVC