コントローラーは異なるがアクション名が同じルートは、必要な URL の生成に失敗する

両方のルートに同じ名前が付けられています。これは ASP.NET Core MVC では機能しません。

メソッドの命名についてではなく、ルートの命名について話しているのです。同じ識別子 Name = "delete" で両方のルートを呼び出しました HttpPost の中 属性。 MVC のルート名は、ルート テンプレートを一意に識別します。

私が見る限り、実際にはルートを識別する必要はなく、異なる URI を区別するためだけに必要です。このため、Name は自由に削除できます。 HttpPost のプロパティ アクションメソッドの属性。これは、ASP.NET Core ルーターがアクション メソッドと一致するのに十分なはずです。

代わりに、属性ルーティングのみを使用して元に戻す場合は、コントローラーを次のように変更することをお勧めします:

// other code omitted for clarity
[Route("aim/v1/contacts/")]
public class aimContactsController : Controller
{
    [HttpPost("delete/{id}")]
    public IActionResult delete(string id)
    {
        // omitted ...
    }
}