İçeriğe geç

Yeni Başlayanlar için MVC Örnekleri – 3

Mvc örnekleri yazı dizisinin üçüncüsü olan bu yazıda basit anlamda bir ziyaretçi defteri hazırlayacağız. Tek bir sayfa üzerinde daha önceden girilmiş olan yazıları görebileceğiz ve yine aynı sayfa üzerinden veri girişi yapabileceğiz. Veritabanı olarak Ms Sql kullanıyor olacağız.

Ziyaretçi Defteri

Öncelikle veri kaynağımızda ihtiyacımız olan tabloyu aşağıdaki gibi tasarlayabiliriz.

CREATE TABLE [dbo].[Book](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[CreateDate] [datetime] NOT NULL,
	[GuestNameSurname] [nvarchar](100) NULL,
	[GuestMail] [nvarchar](150) NULL,
	[ContextText] [nvarchar](3000) NULL,
 CONSTRAINT [PK_Book] PRIMARY KEY CLUSTERED
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Sonrasında MVC projesi ile birlikte gelen Models klasörü içine ilgili tablomuzu içinde barındıracak olan Entity Model nesnesi oluşturmalıyız. Bu model aracılığı ile veri işlemlerimizi gerçekleştireceğiz. Sonrasında HomeController sınıfı içerisine verileri ekrana basmak için kullanacağımız Index metodunu tanımlamalıyız.

        private IEnumerable<Book> GetData()
        {
            IEnumerable<Book> result;
            using (dbGuestBookEntities context = new dbGuestBookEntities())
            {
                result = context.Book.OrderByDescending(p => p.CreateDate).ToList();
                return result;
            }
        }

        public ActionResult Index()
        {
            return View(GetData());
        }

Var olan ziyaretçi defteri verilerine erişimi sağladık ve yeni kayıt girişine imkan tanıyacak olan Post metoduna da ihtiyacımız bulunmaktadır. Onuda aşağıdaki gibi inceleyebiliriz.

        [HttpPost]
        public ActionResult Index(Book book)
        {
            using (dbGuestBookEntities context = new dbGuestBookEntities())
            {
                book.CreateDate = DateTime.Now;
                context.Book.AddObject(book);
                context.SaveChanges();
            }
            return View(GetData());
        }

HomeController içerisinde hem veri girişine imkan tanıyacak metodu hem de var olan verilerimize erişim yapacak metodu hazırladık. Şimdi Bu controller sınıfına ait olan bir view hazırlamak kalıyor. Bu view’e ait kodları aşağıdaki gibi inceleyebiliriz.

@model List<MvcGuestBook.Models.Book>
@{
 ViewBag.Title = "Guest Book";
}

<h2>Guest Book</h2>
<form action="Home/Index" method="post">
 <table>
 <tr>
 <td>Name Surname:</td>
 <td><input name="GuestNameSurname"></td>
 </tr>
 <tr>
 <td>E-Mail:</td>
 <td><input name="GuestMail"></td>
 </tr>
 <tr>
 <td>Message:</td>
 <td><textarea name="ContextText"></textarea></td>
 </tr>
 <tr>
 <td></td>
 <td>
 <input type="submit" value="Send" /></td>
 </tr>
 </table>
</form>
<div>
 @foreach (var item in Model)
 {
 <table>
 <tr>
 <td>@item.GuestNameSurname</td>
 <td>&nbsp;|&nbsp;</td>
 <td>@item.GuestMail</td>
 </tr>
 <tr>
 <td colspan="3">@item.ContextText</td>
 </tr>
 </table>
 <br><hr><br>
 }
</div>

Uygulamaya ait kodları incelemek için şuradaki linki kullanabilirsiniz.

Tarih:MVC

Tek Yorum

  1. My brother suggested I may like this web site. He used to be entirely right.
    This submit actually made my day. You can not believe
    just how much time I had spent for thiss info! Thank you!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.