Takip Edin

ASP.NET MVC

Controller, Model ve View’i Entegre Etme

controller, model ve view'i entegre etme - öne çıkan görsel

Önceki yazılarda bir controller, model ve view oluşturmuştuk. Bu yazıda ise uygulamayı çalıştırıp sonucu görmek için onları entegre edeceğiz.

Aşağıdaki kod parçacıkları, önceki yazılarda oluşturulan ProductController, Product model ve Index.cshtml view’ini göstermektedir:

public class ProductController : Controller
    {  
        // GET: Product
        public ActionResult Index()
        {
            return View();
        }
    }
public class Product
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public int Price { get; set; }
    }
@model IEnumerable<WebApplication1.Models.Product>

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.ProductName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Price)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.ProductName)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Price)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.ProductId }) |
        @Html.ActionLink("Details", "Details", new { id = item.ProductId }) |
        @Html.ActionLink("Delete", "Delete", new { id = item.ProductId })
    </td>
</tr>
}

</table>

Uygulamayı başarılı bir şekilde çalıştırabilmek için model nesnesini, action metottan view’e iletmemiz gerekmektedir. Yukarıda Index.cshtml dosyasında görüldüğü üzere model türü olarak IEnumerable<Product> kullanılmaktadır. Dolayısıyla productList‘i, aşağıda gösterildiği gibi ProductController’ın Index( ) action metodundan Index.cshtml’e iletmemiz gerekmektedir.

public class ProductController : Controller
    {
        static IList<Product> productList = new List<Product>
        {
            new Product() { ProductId = 1, ProductName = "Mikrofiber Oto Yıkama ve Cam Silme Bezi", Price = 25 },
            new Product() { ProductId = 2, ProductName = "Maşa, Düzleştirici, Elektrikli Fırça", Price = 370 },
            new Product() { ProductId = 3, ProductName = " Travel Sistem Bebek Arabası", Price = 1200 },
            new Product() { ProductId = 4, ProductName = "Elektrikli Diş Fırçası", Price = 250 },
            new Product() { ProductId = 5, ProductName = "Dijital Fotoğraf Makinesi", Price = 5500 }
        };
        // GET: Product
        public ActionResult Index()
        {
            return View(productList);
        }
    }

Yukarıdaki kodda görüldüğü üzere örnek olarak product nesnelerinin bir listesi oluşturulmuştur(Gerçek hayattaki uygulamalarda onu veri tabanından getirebilirsiniz). Daha sonra bu liste nesnesi, bir parametre olarak View( ) metoduna iletilmiştir. View( ) metodu, bir model nesnesini bir view’e otomatik olarak bağlayan base Controller sınıfında tanımlıdır.

Son olarak F5 tuşuna basarak uygulamayı çalıştıralım ve http://localhost/Product‘a geçiş yapalım. Tarayıcı görüntüsü aşağıdaki gibi olacaktır:

product listesi - Index view tarayıcı görüntüsü
Şekil 1: http://localhost/Product - Tarayıcı görüntüsü

Devamını oku

Popüler

error: Content is protected !!