Проект «Стручки» - включить оптимизацию всего модуля

Нет, Нет и Нет. Идите и попробуйте код контроллера ниже, где мы загрузили «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», вы получите ошибку как показанном на рисунке ниже.

enter image description here [/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) ".

enter image description here [/g2]

enter image description here [/g3]

Вышеупомянутый ответ я взял из этой статьи кодепроекта -> Перегрузка действием MVC

22
задан Jonathan Solorzano 13 October 2017 в 03:58
поделиться