Denetleyici Ekleme (C#)

Rick Anderson tarafından

Note

Burada ASP.NET MVC 5 ve Visual Studio 2013 kullanan Bu öğreticinin güncelleştirilmiş bir sürümü mevcuttur. Daha güvenlidir, daha kolay hale gelir ve daha fazla özellik gösterir.

Bu öğretici, Microsoft Visual Studio ücretsiz bir sürümü olan Microsoft Visual Web Developer 2010 Express Service Pack 1 ' i kullanarak bir ASP.NET MVC web uygulaması oluşturmaya ilişkin temel bilgileri öğretir. Başlamadan önce, aşağıda listelenen önkoşulları yüklediğinizden emin olun. Şu bağlantıya tıklayarak hepsini yükleyebilirsiniz: Web Platformu Yükleyicisi. Alternatif olarak, aşağıdaki bağlantıları kullanarak önkoşulları ayrı ayrı yükleyebilirsiniz:

Visual Web Developer 2010 yerine Visual Studio 2010 kullanıyorsanız, aşağıdaki bağlantıya tıklayarak önkoşulları yükleyebilirsiniz: Visual studio 2010 önkoşulları.

Kaynak koduna sahip bir Visual Web C# Developer projesi, bu konuyla birlikte kullanılabilecek. Sürümü C# indirin. Visual Basic tercih ediyorsanız, Bu öğreticinin Visual Basic sürümüne geçin.

MVC, Model-View-Controlleriçin temsil eder. MVC, iyi şekilde tasarlanmış ve bakımı kolay uygulamalar geliştirmeye yönelik bir modeldir. MVC tabanlı uygulamalar şunları içerir:

  • Denetleyiciler: uygulamaya gelen istekleri işleyen sınıflar, model verilerini alır ve ardından istemciye bir yanıt döndüren şablonları görüntüleme seçeneğini belirtir.
  • Modeller: uygulamanın verilerini temsil eden ve bu veriler için iş kurallarını zorlamak üzere doğrulama mantığını kullanan sınıflar.
  • Görünümler: uygulamanızın HTML yanıtlarını dinamik olarak oluşturmak için kullandığı şablon dosyaları.

Bu öğretici serisinde bu kavramların tümünü ele alacağız ve bir uygulama oluşturmak için bunları nasıl kullanacağınızı göstereceğiz.

Bir denetleyici sınıfı oluşturarak başlayalım. Çözüm Gezgini, denetleyiciler klasörüne sağ tıklayın ve ardından Denetleyici Ekle' yi seçin.

Yeni denetleyicinizi "Merhaba Dünya denetleyicisi" olarak adlandırın. Varsayılan şablonu boş denetleyici olarak bırakın ve Ekle' ye tıklayın.

AddHelloWorldController

Çözüm Gezgini , HelloWorldController.csadlı yeni bir dosyanın oluşturulduğunu fark edin. Dosya IDE 'de açıktır.

public class HelloWorldController bloğu içinde, aşağıdaki koda benzeyen iki yöntem oluşturun. Denetleyici bir örnek olarak HTML dizesi döndürür.

using System.Web;
using System.Web.Mvc; 
 
namespace MvcMovie.Controllers 
{ 
    public class HelloWorldController : Controller 
    { 
        // 
        // GET: /HelloWorld/ 
 
        public string Index() 
        { 
            return "This is my <b>default</b> action..."; 
        } 
 
        // 
        // GET: /HelloWorld/Welcome/ 
 
        public string Welcome() 
        { 
            return "This is the Welcome action method..."; 
        } 
    } 
}

Denetleyicinizin adı HelloWorldController ve yukarıdaki ilk yöntem Indexolarak adlandırılmıştı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:43246/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 birkaç HTML döndürdüyordu ve!

ASP.NET MVC, gelen URL 'ye bağlı olarak farklı denetleyici 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 eşleme mantığı, hangi kodun çağıracağına belirlemek için şöyle bir biçim kullanır:

/[Controller]/[ActionName]/[Parameters]

URL 'nin ilk bölümü yürütülecek denetleyici sınıfını belirler. Bu nedenle, /HelloWorld HelloWorldController sınıfıyla eşlenir. URL 'nin ikinci bölümü, yürütülecek sınıftaki Action metodunu belirler. Bu nedenle /HelloWorld/Index HelloWorldController sınıfının Index yönteminin yürütülmesine neden olur. Yalnızca /HelloWorld 'e göz attık ve Index yöntemi varsayılan olarak kullanılmış olduğuna dikkat edin. Bunun nedeni, Index adlı bir yöntemin, açıkça belirtilmemişse bir denetleyicide çağrılacak olan varsayılan yöntemdir.

http://localhost:xxxx/HelloWorld/Welcome adresine gidin. Welcome yöntemi çalışır ve "Bu hoş geldiniz eylemi yöntemi..." dizesini döndürür. Varsayılan MVC eşlemesi /[Controller]/[ActionName]/[Parameters]. Bu URL için, denetleyici HelloWorld ve Welcome Action yöntemidir. URL 'nin [Parameters] parçası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, bu parametre için hiçbir C# değer geçirilmemişse, numTimes parametresinin varsayılan olarak 1 ' e olacağını belirtmek için isteğe bağlı parametre özelliğini kullandığını unutmayın.

public string Welcome(string name, int numTimes = 1) {
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}

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. Sistem, adlandırılmış parametreleri adres çubuğundaki sorgu dizesinden, yönteminizin içindeki parametrelere otomatik olarak eşler.

Bu örneklerde, denetleyici MVC 'nin "VC" bölümünü (yani, görünüm ve denetleyici çalışır) yapıyor. Denetleyici HTML 'i doğrudan döndürüyor. Normalde, kod için çok daha fazla hale geldiği için 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 yapadığımızda bakalım.