ASP.NET MVC ile 15 Dakika İçinde Bir Film Veritabanı Uygulaması Oluşturma (VB)
tarafından Stephen Walther
Stephen Walther baştan sona veritabanı tabanlı ASP.NET MVC uygulamasının tamamını oluşturur. Bu öğretici, ASP.NET MVC Framework'e yeni katılan ve ASP.NET MVC uygulaması oluşturma süreci hakkında fikir edinmek isteyen kişiler için harika bir giriş niteliğindedir.
Bu öğreticinin amacı, bir ASP.NET MVC uygulaması oluşturmak için size "nasıldır" duygusunu vermektir. Bu öğreticide, baştan sona bir ASP.NET MVC uygulamasının tamamını derlemeye başladım. Veritabanı kayıtlarını nasıl listeleyebileceğinizi, oluşturabileceğinizi ve düzenleyebileceğinizi gösteren basit bir veritabanı tabanlı uygulama oluşturmayı gösteriyorum.
Uygulamamızı oluşturma sürecini basitleştirmek için Visual Studio 2008'in yapı iskelesi özelliklerinden yararlanacağız. Visual Studio'nun denetleyicilerimiz, modellerimiz ve görünümlerimiz için ilk kodu ve içeriği oluşturmasına izin vereceğiz.
Active Server Pages veya ASP.NET ile çalıştıysanız ASP.NET MVC'yi çok tanıdık bulmalısınız. ASP.NET MVC görünümleri, Active Server Pages uygulamasındaki sayfalara çok benzer. Geleneksel bir ASP.NET Web Forms uygulaması gibi ASP.NET MVC de .NET framework tarafından sağlanan zengin dil ve sınıf kümesine tam erişim sağlar.
Bu öğreticinin size bir ASP.NET MVC uygulaması oluşturma deneyiminin, Active Server Pages veya ASP.NET Web Forms uygulaması oluşturma deneyiminden hem benzer hem de farklı olduğu konusunda bir fikir vereceğini umuyorum.
Film Veritabanı Uygulamasına Genel Bakış
Hedefimiz işleri basit tutmak olduğundan çok basit bir Film Veritabanı uygulaması oluşturacağız. Basit Film Veritabanı uygulamamız üç şey yapmamıza olanak sağlar:
- Bir dizi film veritabanı kaydını listeleme
- Yeni film veritabanı kaydı oluşturma
- Var olan bir film veritabanı kaydını düzenleme
İşleri basit tutmak istediğimizden, uygulamamızı oluşturmak için gereken ASP.NET MVC çerçevesinin minimum özellik sayısından yararlanacağız. Örneğin, Test-Driven Geliştirme'nin avantajlarından yararlanmayacağız.
Uygulamamızı oluşturmak için aşağıdaki adımların her birini tamamlamamız gerekir:
- ASP.NET MVC Web Uygulaması Projesi Oluşturma
- Veritabanını oluşturma
- Veritabanı modelini oluşturma
- ASP.NET MVC denetleyicisini oluşturma
- ASP.NET MVC görünümlerini oluşturma
Başlangıç bilgileri
ASP.NET MVC uygulaması oluşturmak için Visual Studio 2008 veya Visual Web Developer 2008 Express gerekir. ayrıca ASP.NET MVC çerçevesini de indirmeniz gerekir.
Visual Studio 2008'e sahip değilseniz bu web sitesinden Visual Studio 2008'in 90 günlük deneme sürümünü indirebilirsiniz:
https://msdn.microsoft.com/vs2008/products/cc268305.aspx
Alternatif olarak, Visual Web Developer Express 2008 ile ASP.NET MVC uygulamaları oluşturabilirsiniz. Visual Web Developer Express kullanmaya karar verirseniz Service Pack 1 yüklü olmalıdır. Visual Web Developer 2008 Express With Service Pack 1'i bu web sitesinden indirebilirsiniz:
Visual Studio 2008 veya Visual Web Developer 2008'i yükledikten sonra ASP.NET MVC çerçevesini yüklemeniz gerekir. ASP.NET MVC çerçevesini aşağıdaki web sitesinden indirebilirsiniz:
Not
ASP.NET çerçevesini ve ASP.NET MVC çerçevesini tek tek indirmek yerine Web Platformu Yükleyicisi'nden yararlanabilirsiniz. Web Platformu Yükleyicisi, yüklü uygulamaları kolayca yönetmenizi sağlayan bir uygulamadır:
ASP.NET MVC Web Uygulaması Projesi Oluşturma
Visual Studio 2008'de yeni bir ASP.NET MVC Web Uygulaması projesi oluşturarak başlayalım. Dosya, Yeni Proje menü seçeneğini belirlediğinizde Şekil 1'de Yeni Proje iletişim kutusunu görürsünüz. Programlama dili olarak Visual Basic'i seçin ve ASP.NET MVC Web Uygulaması proje şablonunu seçin. Projenize MovieApp adını verin ve Tamam düğmesine tıklayın.
Şekil 01: Yeni Proje iletişim kutusu (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Yeni Proje iletişim kutusunun en üstündeki açılan listeden .NET Framework 3.5'i seçtiğinizden emin olun; ASP.NET MVC Web Uygulaması proje şablonu görüntülenmez.
Yeni bir MVC Web Uygulaması projesi oluşturduğunuzda, Visual Studio sizden ayrı bir birim testi projesi oluşturmanızı ister. Şekil 2'deki iletişim kutusu görüntülenir. Zaman kısıtlamaları nedeniyle bu öğreticide testler oluşturmayacağımızdan (ve evet, bu konuda biraz suçlu hissetmemiz gerekir) Hayır seçeneğini belirleyin ve Tamam düğmesine tıklayın.
Not
Visual Web Developer test projelerini desteklemez.
Şekil 02: Birim Testi Projesi Oluştur iletişim kutusu (Tam boyutlu görüntüyü görüntülemek için tıklayın)
ASP.NET MVC uygulaması standart bir klasör kümesine sahiptir: Modeller, Görünümler ve Denetleyiciler klasörü. Bu standart klasör kümesini Çözüm Gezgini penceresinde görebilirsiniz. Film Veritabanı uygulamamızı oluşturmak için Modeller, Görünümler ve Denetleyiciler klasörlerinin her birine dosya eklememiz gerekir.
Visual Studio ile yeni bir MVC uygulaması oluşturduğunuzda örnek bir uygulama alırsınız. Sıfırdan başlamak istediğimiz için bu örnek uygulamanın içeriğini silmemiz gerekir. Aşağıdaki dosyayı ve aşağıdaki klasörü silmeniz gerekir:
- Controllers\HomeController.vb
- Görünümler\Giriş
Veritabanı Oluşturma
Film veritabanı kayıtlarımızı barındıracak bir veritabanı oluşturmamız gerekiyor. Neyse ki Visual Studio, SQL Server Express adlı ücretsiz bir veritabanı içerir. Veritabanını oluşturmak için şu adımları izleyin:
- Çözüm Gezgini penceresinde App_Data klasörüne sağ tıklayın ve Ekle, Yeni Öğe menü seçeneğini belirleyin.
- Veri kategorisini seçin ve SQL Server Veritabanı şablonunu seçin (bkz. Şekil 3).
- Yeni veritabanınıza MoviesDB.mdf adını verin ve Ekle düğmesine tıklayın.
Veritabanınızı oluşturduktan sonra, App_Data klasöründe bulunan MoviesDB.mdf dosyasına çift tıklayarak veritabanına bağlanabilirsiniz. MoviesDB.mdf dosyasına çift tıklanması Sunucu Gezgini penceresini açar.
Not
Sunucu Gezgini penceresi, Visual Web Developer söz konusu olduğunda Veritabanı Gezgini penceresi olarak adlandırılır.
Şekil 03: Microsoft SQL Server Veritabanı Oluşturma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Ardından yeni bir veritabanı tablosu oluşturmamız gerekiyor. Sunucu Gezgini penceresinin içinden Tablolar klasörüne sağ tıklayın ve Yeni Tablo Ekle menü seçeneğini belirleyin. Bu menü seçeneğinin seçilmesi veritabanı tablosu tasarımcısını açar. Aşağıdaki veritabanı sütunlarını oluşturun:
Sütun Adı | Veri Türü | Null'lara İzin Ver |
---|---|---|
Id | int | Yanlış |
Başlık | Nvarchar(100) | Yanlış |
Yönetmen | Nvarchar(100) | Yanlış |
DateReleased | DateTime | Yanlış |
İlk sütun olan Kimlik sütunu iki özel özelliğe sahiptir. İlk olarak, Kimlik sütununu birincil anahtar sütunu olarak işaretlemeniz gerekir. Kimlik sütununu seçtikten sonra Birincil Anahtarı Ayarla düğmesine tıklayın (anahtara benzeyen simgedir). İkincisi, Kimlik sütununu Kimlik sütunu olarak işaretlemeniz gerekir. Sütun Özellikler penceresi, ekranı aşağı kaydırarak Kimlik Belirtimi bölümüne gelin ve genişletin. Is Identity özelliğini Evet değeriyle değiştirin. İşiniz bittiğinde tablo Şekil 4 gibi görünmelidir.
Şekil 04: Filmler veritabanı tablosu (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Son adım, yeni tabloyu kaydetmektir. Kaydet düğmesine (disket simgesi) tıklayın ve yeni tabloya Filmler adını verin.
Tabloyu oluşturmayı tamamladıktan sonra tabloya bazı film kayıtları ekleyin. Sunucu Gezgini penceresinde Filmler tablosuna sağ tıklayın ve Tablo Verilerini Göster menü seçeneğini belirleyin. Sık kullandığınız filmlerin listesini girin (bkz. Şekil 5).
Şekil 05: Film kayıtlarını girme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Model Oluşturma
Bir sonraki adımda veritabanımızı temsil eden bir sınıf kümesi oluşturmamız gerekiyor. Bir veritabanı modeli oluşturmamız gerekiyor. Veritabanı modelimizin sınıflarını otomatik olarak oluşturmak için Microsoft Entity Framework'ün avantajlarından yararlanacağız.
Not
ASP.NET MVC çerçevesi Microsoft Entity Framework'e bağlı değildir. LINQ to SQL, Subsonic ve NHibernate gibi çeşitli Nesne İlişkisel Eşleme (OR/M) araçlarından yararlanarak veritabanı modeli sınıflarınızı oluşturabilirsiniz.
Varlık Veri Modeli Sihirbazı'nı başlatmak için şu adımları izleyin:
- Çözüm Gezgini penceresinde Modeller klasörüne sağ tıklayın ve Ekle, Yeni Öğe menü seçeneğini belirleyin.
- Veri kategorisini seçin ve ADO.NET Varlık Veri Modeli şablonunu seçin.
- Veri modelinize MoviesDBModel.edmx adını verin ve Ekle düğmesine tıklayın.
Ekle düğmesine tıkladıktan sonra Varlık Veri Modeli Sihirbazı görüntülenir (bkz. Şekil 6). Sihirbazı tamamlamak için şu adımları izleyin:
- Model İçeriğiNi Seçin adımında Veritabanından oluştur seçeneğini belirleyin.
- Veri Bağlantınızı Seçin adımında MoviesDB.mdf veri bağlantısını ve bağlantı ayarları için MoviesDBEntities adını kullanın. İleri düğmesine tıklayın.
- Veritabanı Nesnelerinizi Seçin adımında Tablolar düğümünü genişletin ve Filmler tablosunu seçin. MovieApp.Models ad alanını girin ve Son düğmesine tıklayın.
Şekil 06: Varlık Veri Modeli Sihirbazı ile veritabanı modeli oluşturma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Varlık Veri Modeli Sihirbazı'nı tamamladıktan sonra Varlık Veri Modeli Tasarım Aracı açılır. Tasarım Aracı Filmler veritabanı tablosunu görüntülemelidir (bkz. Şekil 7).
Şekil 07: Varlık Veri Modeli Tasarım Aracı (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Devam etmeden önce bir değişiklik yapmalıyız. Varlık Verileri Sihirbazı, Filmler veritabanı tablosunu temsil eden Filmler adlı bir model sınıfı oluşturur. Belirli bir filmi temsil etmek için Filmler sınıfını kullanacağımızdan, sınıfın adını Filmler yerine Film olacak şekilde değiştirmemiz gerekir (çoğul yerine tekil).
Tasarımcı yüzeyinde sınıfın adına çift tıklayın ve sınıfın adını Filmler'den Film'e değiştirin. Bu değişikliği yaptıktan sonra, Movie sınıfını oluşturmak için Kaydet düğmesine (disketin simgesi) tıklayın.
ASP.NET MVC Denetleyicisi oluşturma
Sonraki adım, ASP.NET MVC denetleyicisini oluşturmaktır. Denetleyici, kullanıcının bir ASP.NET MVC uygulamasıyla nasıl etkileşime geçtiğini denetlemekle sorumludur.
Şu adımları izleyin:
- Çözüm Gezgini penceresinde Denetleyiciler klasörüne sağ tıklayın ve Ekle, Denetleyici menü seçeneğini belirleyin.
- Denetleyici Ekle iletişim kutusunda HomeController adını girin ve Oluştur, Güncelleştir ve Ayrıntılar senaryoları için eylem yöntemleri ekle etiketli onay kutusunu işaretleyin (bkz. Şekil 8).
- Yeni denetleyiciyi projenize eklemek için Ekle düğmesine tıklayın.
Bu adımları tamamladıktan sonra Listeleme 1'deki denetleyici oluşturulur. Dizin, Ayrıntılar, Oluştur ve Düzenle adlı yöntemleri içerdiğine dikkat edin. Aşağıdaki bölümlerde, bu yöntemlerin çalışmasını sağlamak için gerekli kodu ekleyeceğiz.
Şekil 08: Yeni bir ASP.NET MVC Denetleyicisi ekleme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Listeleme 1 – Controllers\HomeController.vb
Public Class HomeController
Inherits System.Web.Mvc.Controller
'
' GET: /Home/
Function Index() As ActionResult
Return View()
End Function
'
' GET: /Home/Details/5
Function Details(ByVal id As Integer) As ActionResult
Return View()
End Function
'
' GET: /Home/Create
Function Create() As ActionResult
Return View()
End Function
'
' POST: /Home/Create
<AcceptVerbs(HttpVerbs.Post)> _
Function Create(ByVal collection As FormCollection) As ActionResult
Try
' TODO: Add insert logic here
Return RedirectToAction("Index")
Catch
Return View()
End Try
End Function
'
' GET: /Home/Edit/5
Function Edit(ByVal id As Integer) As ActionResult
Return View()
End Function
'
' POST: /Home/Edit/5
<AcceptVerbs(HttpVerbs.Post)> _
Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
Try
' TODO: Add update logic here
Return RedirectToAction("Index")
Catch
Return View()
End Try
End Function
End Class
Veritabanı Kayıtlarını Listeleme
Home denetleyicisinin Index() yöntemi, bir ASP.NET MVC uygulaması için varsayılan yöntemdir. bir ASP.NET MVC uygulaması çalıştırdığınızda, Index() yöntemi çağrılan ilk denetleyici yöntemidir.
Filmler veritabanı tablosundaki kayıtların listesini görüntülemek için Index() yöntemini kullanacağız. Index() yöntemiyle film veritabanı kayıtlarını almak için daha önce oluşturduğumuz veritabanı modeli sınıflarından yararlanacağız.
Liste 2'deki HomeController sınıfını, _db adlı yeni bir özel alan içermesi için değiştirdim. MoviesDBEntities sınıfı veritabanı modelimizi temsil eder ve veritabanımızla iletişim kurmak için bu sınıfı kullanacağız.
Liste 2'de Index() yöntemini de değiştirdim. Index() yöntemi, Filmler veritabanı tablosundaki tüm film kayıtlarını almak için MoviesDBEntities sınıfını kullanır. İfade _db. MovieSet.ToList() , Filmler veritabanı tablosundaki tüm film kayıtlarının listesini döndürür.
Film listesi görünüme geçirilir. View() yöntemine geçirilen her şey görünüme görünüm verileri olarak geçirilir.
Listeleme 2 – Controllers/HomeController.vb (index yöntemi değiştirildi)
Public Class HomeController
Inherits System.Web.Mvc.Controller
Private _db As New MoviesDBEntities()
Function Index() As ActionResult
Return View(_db.MovieSet.ToList())
End Function
End Class
Index() yöntemi Index adlı bir görünüm döndürür. Film veritabanı kayıtlarının listesini görüntülemek için bu görünümü oluşturmamız gerekir. Şu adımları izleyin:
Görünüm Ekle iletişim kutusunu açmadan önce projenizi derlemelisiniz (Derle, Çözüm Derle'yi seçin), aksi takdirde Veri sınıfını görüntüle açılan listesinde hiçbir sınıf görüntülenmez.
- Kod düzenleyicisinde Index() yöntemine sağ tıklayın ve Görünüm Ekle menü seçeneğini belirleyin (bkz. Şekil 9).
- Görünüm Ekle iletişim kutusunda, Kesin olarak belirlenmiş bir görünüm oluştur etiketli onay kutusunun işaretli olduğunu doğrulayın.
- İçeriği görüntüle açılan listesinden Liste değerini seçin.
- Veri sınıfını görüntüle açılan listesinden MovieApp.Movie değerini seçin.
- Yeni görünümü oluşturmak için Ekle düğmesine tıklayın (bkz. Şekil 10).
Bu adımları tamamladıktan sonra, Views\Home klasörüne Index.aspx adlı yeni bir görünüm eklenir. Dizin görünümünün içeriği Liste 3'e dahildir.
Şekil 09: Denetleyici eyleminden görünüm ekleme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 10: Görünüm Ekle iletişim kutusuyla yeni görünüm oluşturma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of MovieApp.Movie))" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<p>
<%=Html.ActionLink("Create New", "Create")%>
</p>
<table>
<tr>
<th></th>
<th>
Id
</th>
<th>
Title
</th>
<th>
Director
</th>
<th>
DateReleased
</th>
</tr>
<% For Each item In Model%>
<tr>
<td>
<%=Html.ActionLink("Edit", "Edit", New With {.id = item.Id})%> |
<%=Html.ActionLink("Details", "Details", New With {.id = item.Id})%>
</td>
<td>
<%= Html.Encode(item.Id) %>
</td>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.Director) %>
</td>
<td>
<%= Html.Encode(String.Format("{0:g}", item.DateReleased)) %>
</td>
</tr>
<% Next%>
</table>
</asp:Content>
Dizin görünümü, bir HTML tablosunun içindeki Filmler veritabanı tablosundaki tüm film kayıtlarını görüntüler. Görünüm, ViewData.Model özelliğiyle temsil edilen her filmde yinelenen For Each döngüsünü içerir. Uygulamanızı F5 tuşuna basarak çalıştırırsanız, Şekil 11'de web sayfasını görürsünüz.
Şekil 11: Dizin görünümü (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Yeni Veritabanı Kayıtları Oluşturma
Önceki bölümde oluşturduğumuz Dizin görünümü, yeni veritabanı kayıtları oluşturmaya yönelik bir bağlantı içerir. Şimdi mantığı uygulayalım ve yeni film veritabanı kayıtları oluşturmak için gereken görünümü oluşturalım.
Giriş denetleyicisi Create() adlı iki yöntem içerir. İlk Create() yönteminin parametresi yoktur. Create() yönteminin bu aşırı yüklemesi, yeni bir film veritabanı kaydı oluşturmaya yönelik HTML formunu görüntülemek için kullanılır.
İkinci Create() yönteminin FormCollection parametresi vardır. Create() yönteminin bu aşırı yüklemesi, yeni film oluşturmaya yönelik HTML formu sunucuya gönderildiğinde çağrılır. Bu ikinci Create() yönteminin, HTTP Post işlemi gerçekleştirilmediği sürece yönteminin çağrılmasını engelleyen bir AcceptVerbs özniteliğine sahip olduğuna dikkat edin.
Bu ikinci Create() yöntemi, Liste 4'teki güncelleştirilmiş HomeController sınıfında değiştirildi. Create() yönteminin yeni sürümü Movie parametresini kabul eder ve Filmler veritabanı tablosuna yeni film ekleme mantığını içerir.
Not
Bind özniteliğine dikkat edin. Movie Id özelliğini HTML formundan güncelleştirmek istemediğimiz için bu özelliği açıkça dışlamamız gerekir.
Listeleme 4 – Controllers\HomeController.vb (create metodu değiştirildi)
Function Create() As ActionResult
Return View()
End Function
<AcceptVerbs(HttpVerbs.Post)> _
Function Create(<_bind28_exclude3a_3d_22_id22_29_> ByVal movieToCreate As Movie) As ActionResult
If Not ModelState.IsValid Then
Return View()
End If
_db.AddToMovieSet(movieToCreate)
_db.SaveChanges()
Return RedirectToAction("Index")
End Function
<!--_bind28_exclude3a_3d_22_id22_29_-->
Visual Studio, yeni bir film veritabanı kaydı oluşturmak için form oluşturmayı kolaylaştırır (bkz. Şekil 12). Şu adımları izleyin:
- Kod düzenleyicisinde Create() yöntemine sağ tıklayın ve Görünüm Ekle menü seçeneğini belirleyin.
- Kesin olarak belirlenmiş görünüm oluştur etiketli onay kutusunun işaretli olduğunu doğrulayın.
- İçeriği görüntüle açılan listesinde Oluştur değerini seçin.
- Veri sınıfını görüntüle açılan listesinden MovieApp.Movie değerini seçin.
- Yeni görünümü oluşturmak için Ekle düğmesine tıklayın.
Şekil 12: Oluştur görünümünü ekleme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Visual Studio, Liste 5'teki görünümü otomatik olarak oluşturur. Bu görünüm, Movie sınıfının özelliklerine karşılık gelen alanları içeren bir HTML formu içerir.
Listeleme 5 – Views\Home\Create.aspx
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of MovieApp.Movie)" %>
<asp:Content ID="Content3" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" runat="server">
<h2>Create</h2>
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% Using Html.BeginForm()%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="Id">Id:</label>
<%= Html.TextBox("Id") %>
<%= Html.ValidationMessage("Id", "*") %>
</p>
<p>
<label for="Title">Title:</label>
<%= Html.TextBox("Title") %>
<%= Html.ValidationMessage("Title", "*") %>
</p>
<p>
<label for="Director">Director:</label>
<%= Html.TextBox("Director") %>
<%= Html.ValidationMessage("Director", "*") %>
</p>
<p>
<label for="DateReleased">DateReleased:</label>
<%= Html.TextBox("DateReleased") %>
<%= Html.ValidationMessage("DateReleased", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% End Using %>
<div>
<%=Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
Not
Görünüm Ekle iletişim kutusu tarafından oluşturulan HTML formu bir Kimlik formu alanı oluşturur. Kimlik sütunu bir Kimlik sütunu olduğundan, bu form alanına ihtiyacımız yoktur ve bunu güvenle kaldırabilirsiniz.
Oluştur görünümünü ekledikten sonra veritabanına yeni Film kayıtları ekleyebilirsiniz. F5 tuşuna basarak uygulamanızı çalıştırın ve Şekil 13'te formu görmek için Yeni Oluştur bağlantısına tıklayın. Formu tamamlayıp gönderirseniz, yeni bir film veritabanı kaydı oluşturulur.
Form doğrulamayı otomatik olarak edindiğinize dikkat edin. Bir film için yayın tarihi girmeyi ihmal ederseniz veya geçersiz bir yayın tarihi girerseniz, form yeniden görüntülenir ve yayın tarihi alanı vurgulanır.
Şekil 13: Yeni film veritabanı kaydı oluşturma (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Varolan Veritabanı Kayıtlarını Düzenleme
Önceki bölümlerde yeni veritabanı kayıtlarını nasıl listeleyebileceğinizi ve oluşturabileceğinizi ele aldık. Bu son bölümde, var olan veritabanı kayıtlarını nasıl düzenleyebileceğiniz açıklanmıştır.
İlk olarak Düzenleme formunu oluşturmamız gerekir. Visual Studio bizim için Düzenleme formunu otomatik olarak oluşturacağı için bu adım kolaydır. Visual Studio kod düzenleyicisinde HomeController.vb sınıfını açın ve şu adımları izleyin:
- Kod düzenleyicisinde Edit() yöntemine sağ tıklayın ve Görünüm Ekle menü seçeneğini belirleyin (bkz. Şekil 14).
- Kesin olarak belirlenmiş bir görünüm oluştur etiketli onay kutusunu işaretleyin.
- İçeriği görüntüle açılan listesinde Düzenle değerini seçin.
- Veri sınıfını görüntüle açılan listesinden MovieApp.Movie değerini seçin.
- Yeni görünümü oluşturmak için Ekle düğmesine tıklayın.
Bu adımların tamamlanması, Views\Home klasörüne Edit.aspx adlı yeni bir görünüm ekler. Bu görünüm, film kaydını düzenlemek için bir HTML formu içerir.
Şekil 14: Düzenleme görünümünü ekleme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Not
Düzenle görünümü, Film Kimliği özelliğine karşılık gelen bir HTML form alanı içerir. Kişilerin Kimlik özelliğinin değerini düzenlemesini istemediğinizden, bu form alanını kaldırmanız gerekir.
Son olarak, Giriş denetleyicisini veritabanı kaydını düzenlemeyi destekleyecek şekilde değiştirmemiz gerekir. Güncelleştirilmiş HomeController sınıfı Listeleme 6'da yer alır.
Listeleme 6 – Controllers\HomeController.vb (Yöntemleri düzenle)
Function Edit(ByVal id As Integer) As ActionResult
Dim movieToEdit = (From m In _db.MovieSet _
Where m.Id = id _
Select m).First()
Return View(movieToEdit)
End Function
<AcceptVerbs(HttpVerbs.Post)> _
Function Edit(ByVal movieToEdit As Movie) As ActionResult
Dim originalMovie = (From m In _db.MovieSet _
Where m.Id = movieToEdit.Id _
Select m).First()
If Not ModelState.IsValid Then
Return View(originalMovie)
End If
_db.ApplyPropertyChanges(originalMovie.EntityKey.EntitySetName, movieToEdit)
_db.SaveChanges()
Return RedirectToAction("Index")
End Function
Liste 6'da Edit() yönteminin her iki aşırı yüklemesine de ek mantık ekledim. İlk Edit() yöntemi, yönteme geçirilen Id parametresine karşılık gelen film veritabanı kaydını döndürür. İkinci aşırı yükleme, veritabanındaki bir film kaydına yönelik güncelleştirmeleri gerçekleştirir.
Veritabanındaki mevcut filmi güncelleştirmek için özgün filmi almanız ve ardından ApplyPropertyChanges() öğesini çağırmanız gerektiğine dikkat edin.
Özet
Bu öğreticinin amacı size ASP.NET MVC uygulaması oluşturma deneyimi hakkında fikir vermekti. Umarım ASP.NET MVC web uygulaması oluşturmanın, Active Server Pages veya ASP.NET uygulaması oluşturma deneyimine çok benzer olduğunu keşfettiniz.
Bu öğreticide, ASP.NET MVC çerçevesinin yalnızca en temel özelliklerini inceledik. Gelecek öğreticilerde denetleyiciler, denetleyici eylemleri, görünümler, verileri görüntüleme ve HTML yardımcıları gibi konuları ayrıntılı olarak ele aacağız.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin