Bir Denetleyiciden Modelinizin Verilerine Erişme
tarafından Scott Hanselman
Bu, ASP.NET MVC'nin temellerini tanıtır. Veritabanından okuyan ve yazan basit bir web uygulaması oluşturacaksınız. Diğer ASP.NET MVC öğreticilerini ve örneklerini bulmak için ASP.NET MVC öğrenme merkezini ziyaret edin.
Bu bölümde yeni bir MoviesController sınıfı oluşturacak ve Film verilerimizi alan ve bir Görünüm şablonu kullanarak tarayıcıya geri görüntüleyen bir kod yazacağız.
Denetleyiciler klasörüne sağ tıklayın ve yeni bir MoviesController oluşturun.
Bu işlem, projemizdeki \Controllers klasörümüzün altında yeni bir "MoviesController.cs" dosyası oluşturur. MovieController'ı yeni doldurulan veritabanımızdan film listesini alacak şekilde güncelleştirelim.
using System;
using System.Linq;
using System.Web.Mvc;
using Movies.Models;
namespace Movies.Controllers
{
public class MoviesController : Controller
{
MoviesEntities db = new MoviesEntities();
public ActionResult Index()
{
var movies = from m in db.Movies
where m.ReleaseDate > new DateTime(1984, 6, 1)
select m;
return View(movies.ToList());
}
}
}
Yalnızca 1984 yazından sonra yayınlanan filmleri almak için bir LINQ sorgusu gerçekleştiriyoruz. Bu film listesini geri işlemek için bir Görünüm şablonuna ihtiyacımız olacak, bu nedenle yöntemi sağ tıklatıp Görünüm Ekle'yi seçerek oluşturun.
Görünüm Ekle iletişim kutusunda Bir List<Movies.Models.Movie> dosyasını Görünüm şablonumuza geçirebileceğimizi belirteceğiz. Önceki bölümlerden farklı olarak Görünüm Ekle iletişim kutusunu kullandık ve bir "Boş" şablon oluşturmayı seçtik. Bu kez Visual Studio'nun bazı varsayılan içeriklerle bizim için bir görünüm şablonunu otomatik olarak "iskelesini" oluşturmasını istediğimizi belirteceğiz. Bunu, "İçeriği görüntüle açılan menüsündeki "Liste" öğesini seçerek yapacağız.
Yeni bir sınıf oluşturduğunuzda, görünüm ekle iletişim kutusunda gösterilmesi için uygulamanızı derlemeniz gerektiğini unutmayın.
Ekle'ye tıklatır ve sistem bizim için film listemizi görüntüleyen bir Görünüm kodunu otomatik olarak oluşturur. Bu, h2> başlığını daha önce Merhaba Dünya görünümünde yaptığımız gibi "Film Listem" gibi bir başlıkla değiştirmek <için uygun bir zamandır.
Uygulamanızı çalıştırın ve adres çubuğunda /Movies adresini ziyaret edin. Şimdi Denetleyici içindeki temel bir sorguyu kullanarak veritabanından veri aldık ve verileri Filmler hakkında bilgi edinen bir Görünüme döndürdük. Bu Görünüm daha sonra Filmler listesinden geçer ve bizim için bir veri tablosu oluşturur.
Bu uygulamayla Düzenle, Ayrıntılar ve Sil işlevlerini uygulamayacağız, bu nedenle iskele şablonunun bizim için oluşturduğu varsayılan bağlantılara ihtiyacımız yok. /Movies/Index.aspx dosyasını açın ve kaldırın.
Bu değişiklikleri yaptıktan sonra güncelleştirilmiş Görünüm şablonumuzun nasıl görüneceğine ilişkin kaynak kodu aşağıdadır:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Movies.Models.Movie>>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Movie List
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>My Movie List</h2>
<table>
<tr>
<th>Title</th>
<th>ReleaseDate</th>
<th>Genre</th>
<th>Rating</th>
<th>Price</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td><%: item.Title %></td>
<td><%: String.Format("{0:g}", item.ReleaseDate) %></td>
<td><%: item.Genre %></td>
<td><%: item.Rating %></td>
<td><%: String.Format("{0:F}", item.Price) %></td>
</tr>
<% } %>
</table>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
</asp:Content>
İhtiyacımız olmayan bağlantılar oluşturuyor, bu nedenle bu örnek için bunları sileceğiz. Yine de Yeni Oluştur bağlantımızı kullanmaya devam edeceğiz. Bu sütun kaldırıldığında uygulamamız şöyle görünür.
Artık film verilerinizin basit bir listesine sahibiz. Ancak "Yeni Oluştur" bağlantısına tıklarsak bağlanmadığı için bir hata alacağız! Şimdi bir Create Action yöntemi uygulayalım ve kullanıcının veritabanımıza yeni filmler girmesini sağlayalım.
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