Причина, по которой вы получаете сообщение об ошибке, заключается в том, что сам C # запутался. В то время как в MVC вы можете добавить атрибуты, чтобы указать, является ли функция HttpGet или HttpPost, это не помогает C # определить разницу между одним или другим. Чтобы иметь 2 функции с одинаковым именем, список параметров должен быть другим.
Как указал frennky, атрибут ActionName работает в MVC, потому что MVC использует псевдонимы как часть процесса для определения, какое действие вызывать (наряду с атрибутами, но не параметрами).
Как примечание, вероятно, лучше не использовать действие Delete для запроса GET. Вы не хотите, чтобы сканер или другой бот случайно нажал не на ту ссылку: P