Asp.Net MVC

Asp.Net Mvc 5 – Controller Ekleme

MVC, Model-View-Controller yönteminin kısaltmasıdır. MVC, iyi şekilde tasarlanmış ve bakımı kolay olan uygulamalar geliştirmeye yönelik bir modeldir. MVC tabanlı uygulamalar şunları içerir:

  • Model: uygulamanın verilerini temsil eden ve bu veriler için iş kurallarını zorlamak üzere doğrulama mantığını kullanan sınıflar.
  • View: uygulamanızın HTML yanıtlarını dinamik olarak oluşturmak Için kullandığı şablon dosyaları.
  • Controller: gelen tarayıcı isteklerini işleyen, model verilerini alan ve tarayıcıya yanıt döndüren şablonları görüntüleyen sınıflar.

Bir Controller sınıfı oluşturarak başlayalım. Solution Explorer’danControllers klasörüne sağ tıklayın, ardından Add ‘ye ve ardından Controller‘a tıklayın.

Add Scaffold Iletişim kutusunda MVC 5 Controller-Empty’e ve ardından Add‘ ye tıklayın.

Yeni denetleyicinizi “HelloWordController” olarak adlandırın ve Add’ ye tıklayın.

Add controller

Solution Explorer ‘da , views\helloworld adlı yeni bir klasör ve HelloWorldController.cs adlı yeni bir dosya oluşturulduğunu göreceksiniz. Controller IDE ‘de açıktır.

Dosyanın içeriğini aşağıdaki kodla değiştirin.

 

Denetleyici yöntemleri örnek bir HTML dizesi döndürür. Denetleyici HelloWorldController olarak adlandırılır ve ilk yöntem Index adındadır. Bir tarayıcıdan çağıralım. Uygulamayı çalıştırın (F5 tuşuna basın veya CTRL + F5 tuşlarına basın). Tarayıcıda,  Adres çubuğundaki yola “HelloWorld” ekleyin. (Örneğin, aşağıdaki çizimde, http://localhost:1234/HelloWorld. ) Tarayıcıdaki sayfa aşağıdaki ekran görüntüsüne benzer şekilde görünür. Yukarıdaki yöntemde kod doğrudan bir dize döndürdü. Sisteme yalnızca HTML döndürüyordu ve sonu:

ASP.NET MVC, gelen URL ‘ye bağlı olarak farklı Controller sınıflarını (ve bunların içinde farklı eylem yöntemlerini) çağırır. ASP.NET MVC tarafından kullanılan varsayılan URL yönlendirme mantığı, çağrılacak kodu belirlemek için aşağıdaki gibi bir biçim kullanır:

Application_Start/routeconfig. cs dosyasında yönlendirme biçimini ayarlarsınız.

 

Uygulamayı çalıştırdığınızda ve herhangi bir URL düzenini sağlamadığınızda, varsayılan olarak “Home” denetleyicisi ve Yukarıdaki kodun varsayılanlar bölümünde belirtilen “Index” eylem yöntemi olur. (“/Home/Index/”)

URL ‘nin ilk bölümü yürütülecek denetleyici sınıfını belirler. Bu nedenle /HelloWorld sınıfla eşlenir HelloWorldController çalıştırılır. URL ‘nin ikinci bölümü, yürütülecek sınıftaki Action metodunu belirler. Bu nedenle /HelloWorld/Index Index sınıfın yönteminin yürütülmesine neden olur . Yalnızca /HelloWorld öğesine göz atabildiğimiz ve Index yöntemin varsayılan olarak kullanıldığı konusuna dikkat edin. Bunun nedeni, bir yöntem açıkça belirtilmediyse bir denetleyicide çağrılacak olan varsayılan yöntem Index’dir. URL segmentinin() üçüncü bölümü Parameters Rota verileri içindir. Bu seride daha sonra rota verilerini inceleyeceğiz.

http://localhost:xxxx/HelloWorld/Welcome adresine gidin. Welcome çalışır ve “This is the Welcome action method” yazısını ekranda görürüz. Varsayılan MVC eşlemesi /[Controller]/[ActionName]/[Parameters] . Bu URL için denetleyici, HelloWorld ve Welcome eylem yöntemidir. [Parameters] URL ‘nin bir bölümünü henüz kullanmadınız.

URL ‘den denetleyiciye bazı parametre bilgilerini geçirebilmeniz için örneği biraz daha değiştirelim.

(örneğin, /HelloWorld/Welcome?ad=Scott&numtimes=4)

Welcome yönteminizi aşağıda gösterildiği gibi iki parametre içerecek şekilde değiştirin. Kodun, numTimes söz konusu parametreye hiçbir değer geçirilmezse parametrenin varsayılan olarak 1 ‘ i belirtmesi gerektiğini ayarlamak için C# isteğe bağlı parametresi özelliğini kullandığını unutmayın.

 

 

Güvenlik notu:
Yukarıdaki kodda, uygulamayı kötü amaçlı girişten korumak için HttpUtility.HtmlEncode kullanır (yani JavaScript). Daha fazla bilgi için Microsoft eğiticilerini ziyaret edin.

Uygulamanızı çalıştırın ve örnek URL ‘ye http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4 ) gidin. URL ‘de name ve numtimes için farklı değerler deneyebilirsiniz. ASP.NET MVC model bağlama sistemi , adlandırılmış parametreleri adres çubuğundaki sorgu dizesinden, yöntemdeki parametrelere otomatik olarak eşler.

Yukarıdaki örnekte, URL segmenti ( Parameters ) kullanılmaz, name ve numTimes parametreleri sorgu dizeleri olarak geçirilir. ? işareti (soru işareti) Yukarıdaki URL ‘de bir ayırıcıdır. Sorgu dizeleri aşağıdaki gibi olur. & Karakter Sorgu dizelerini ayırır.

Welcome metodunu aşağıdaki kodla değiştirin:

 

Uygulamayı çalıştırın ve aşağıdaki URL ‘ye girin: http://localhost:xxx/HelloWorld/Welcome/1?name=Scott

Bu sefer üçüncü segment ID. URL’nin Welcome ID’si, RegisterRoutes yöntemindeki URL belirtimiyle uyuşan ve parametre içeren bir yol parametresiyle eşleşir.

 

 

ASP.NET MVC uygulamalarında, parametreleri sorgu dizeleri olarak geçirmeden, parametreleri yönlendirme verileri (yukarıda ID ile yaptığımız gibi) olarak geçirmek daha tipik bir yoldur. Ayrıca, name ve numtimes ‘i URL ‘ye hem yönlendirme verileri olarak hem de parametrelerini geçirmek için bir yol ekleyebilirsiniz. Application_Start\routeconfig.cs dosyasına “Welcome” yolunu ekleyin:

 

Uygulamayı çalıştırın ve konumuna gidin /localhost:XXX/HelloWorld/Welcome/Scott/3 .

Birçok MVC uygulaması için, varsayılan yol sorunsuz şekilde çalışıyor. Bu seride daha sonra model skin kullanarak veri geçirilebileceğini öğrenirsiniz ve bunun için varsayılan yolu değiştirmeniz gerekmez.

Bu örneklerde, denetleyici MVC ‘nin “VC” bölümünü yapıyor —yani, görünüm ve denetleyici çalışır. Denetleyici HTML ‘i doğrudan döndürüyor. Normalde, kod için çok daha fazla kod satırı oluşturacağından denetleyicilerin doğrudan HTML döndürmesini istemezsiniz. Bunun yerine, genellikle HTML yanıtı oluşturmaya yardımcı olmak için ayrı bir görünüm şablonu dosyası kullanacağız. Şimdi bunu nasıl yaptığımızda bakalım.

Yorum Yap