Aracılığıyla paylaş


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.

Denetleyici Ekle

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.

Görünüm Ekle

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.

Filmler - Microsoft Visual Web Developer 2010 Express

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.

Listede Ghostbusters 2 ve Ghostbusters 3 bulunan Film Listem'i gösteren Internet Explorer tarayıcı penceresinin ekran görüntüsü.

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.

Düzenle, Ayrıntılar ve Sil bağlantılarının kaldırıldığı Film Listem'i gösteren Internet Explorer tarayıcı penceresinin ekran görüntüsü.

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.