Multiple types were found that match the controller

06 Kasım 2015 1 dk okuma süresi 53 okunma

Öncelikli olarak eğer MVC'de area mantığını kullanmıyor ve klasör içerinde tutuyorsanız hemen bundan vazgeçin. Klasörü silin ve bir area oluşturun.

MVC Area nedir?
Kendi içerisinde yapılandırılmış alt alanlara (proje de denillebilir) area denir. Bir nevi sistemi alt parçalara ayırmadır ve klasör mantığından çok daha ötesidir. Daha fazla bilgi almak için ilgili linke tıklayın. https://docs.asp.net/en/latest/mvc/controllers/areas.html#areas

Şimdi gelelim hatanın çözümüne. Bu hatadan kurtulmanın 2 adımı var.

  • 1. adımda global.asax Application_Start metoduna aşağıdaki kodu ekliyoruz.
ControllerBuilder.Current.DefaultNamespaces.Add("ProjectName.Controllers");
  • 2. adım olarak da oluşturduğunuz area klasörü içerinde bulunan AreaRegistration.cs (area adı ile ilişkilidir, yani admin şeklinde bir area oluşturduysanız AdminAreaRegistration.cs olur) class'ına aşağıdaki kodu ekliyoruz ve projeyi build ediyoruz.
context.MapRoute( "AreaAdi_default", "AreaAdi/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new string[] { "ProjeAdi.Areas.AreaAdi.Controllers" } );

// Benim area'mın adının admin olduğunu varsayarsak kod aşağıdaki gibi olmalı.
</span>context.MapRoute( "admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new string[] { "ProjeAdi.Areas.Admin.Controllers" } );<span></span>
Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
Form post ile giden tüm dataları loglama

Asp.net Core ile farklı bir class library'den appsettings json dosyasını kolayca okumak

Hatalı bundle kullanımından dolayı alınan MIME type hatası ve çözümü