Multiple types were found that match the controller

06 Kasım 2015 1 dk okuma süresi 50 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.
VS2015'in 3. update'ini yaptıktan sonra asp.net core web uygulaması yaratmak istediğimde şu şekilde bir hata ile karşılaştım. "Exception : The system cannot find the file specified. (Exception from HRESULT: 0x80070002)". Çözümü oldukça basit.

Entity framework code first kullanıyorsanız ve inheritance yapıp yeni bir class yarattığınızda bunun gibi bir hata alırsınız. Bunun nedeni fluent api'nin inheritance yapılan class ile ana class'ın map yapmaya çalışması ve ilgili kolonu veritabanında bulamamasıdır. Çözümü ise inherit olmuş class'a [NotMapped] DataAnnotations attribute'unu eklemek.

Asp.Net Mvc ile recursive nasıl yazılır, @helper veya HtmlHelper kullanarak recursive fonksiyon yazmak, Asp.Net MVC View recursive fonksiyon nasıl yazılır?