asp.net 4 iletişim formu (contact form)

ASP.NET 4 ile iletişim formu hazırlayacağımız bu yazımda benimde kendi sitemde kullandığım iletişim formu asp.net i kullananlar için gerekli bir form olduğunu düşünüyorum.

Kodlarımıza geçmeden önce uygulamanın çalışır halini görmek isterseniz tıklayınız...
Projemizin adı contact olsun.uygulamada kullandığım dil ise C# dır.
projemize Home klasörüne Add/View diyoruz iletisim ve tamam adında iki View(sayfa) ekliyoruz.

iletisim sayfamızın kodları şöyle ;
<h1>Bize Ulaşın</h1>
    <fieldset>
    <% using(Html.BeginForm()) { %>
        <%: Html.ValidationSummary() %>
        <p>İsim: <%: Html.TextBoxFor(x => x.İsim) %></p>
        <p>Email Adresi: <%: Html.TextBoxFor(x => x.Email) %></p>
        <p>
            Konu Nedir?
            <%: Html.DropDownListFor(x => x.Konu, new[] {
                new SelectListItem { Text = "Bilgi",
                    Value = bool.TrueString },
                new SelectListItem { Text = "Sipariş",
                    Value = bool.FalseString }
            }, "Lütfen Seçiniz...") %>
        </p>
        
        <p>Mesaj: <%: Html.TextAreaFor(x => x.Mesaj, 10, 25, null)%></p>
        
        <input type="submit" value="Gönder" />
         </fieldset>
        
    <% } %>


bu kodları ekledikten sonra tamam adlı sayfamızın kodlarına geçelim ;

<h1>Teşekkürler, <%: Model.İsim %>!</h1>
    <% if(Model.Konu == true) { %>
    İletiniz Tarafımıza ulaştı...!
    <% } else { %>
    Özür Dileriz.Hata oluştu..
    <% } %>

Controllers klasöründeki HomeController.cs e şu kodları ekliyoruz.

[HttpPost]
        public ViewResult iletisim(kurallar kurallar)
        {
            if (ModelState.IsValid)
            {
                kurallar.Submit();
                return View("tamam", kurallar);
            }
            else // Validation error, so redisplay data entry form
                return View();
        }




Son olarak da Models Klasörüne Add Class diyerek kurallar adında class ekliyoruz.Ve aşağıdaki kodları ekliyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Net.Mail;
using System.Text;
using System.Net;

namespace contact.Models
{
    public class kurallar
    {
        [Required(ErrorMessage = "Lütfen İsminizi Yazınız")]
        public string İsim { get; set; }

        [Required(ErrorMessage = "Lütfen Email Adresinizi Yazınız")]
        [RegularExpression(".+\\@.+\\..+", ErrorMessage = "Email Geçersiz...")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Lütfen Birini Seçiniz")]
        public bool? Konu { get; set; }

        [Required(ErrorMessage = "Lütfen Mesajınızı Yazınız")]
        public string Mesaj { get; set; }



        private MailMessage BuildMailMessage()
        {
            var message = new StringBuilder();
           
            message.AppendFormat("İsim: {0}\n", İsim);
            message.AppendFormat("Email: {0}\n", Email);
            message.AppendFormat("Mesaj: {0}\n", Mesaj);
            message.AppendFormat("Konu: {0}\n", Konu.Value ? "Bilgi" : "Sipariş");
            return new MailMessage(
                "gönderen@emailadresi.com", // (Gönderen)
                "alıcı@emailadresi.com", //(alıcı)
                İsim + (Konu.Value ? " Bilgi" : " Sipariş"), // konu
                message.ToString() // mesaj
            );
        }

        public void Submit()
        {
            using (var smtpClient = new SmtpClient())
            using (var mailMessage = BuildMailMessage())
            {
                smtpClient.Send(mailMessage);
            }
        }
    }
}

uygulamamız bu kadar.
son hali ise şöyle


Uygulamamızın çalışır halini görmek için tıklayınız...

Yorumlar

Bu blogdaki popüler yayınlar

[programsız] Bilgisayarı yeniden başlatma (restart) işleminin zamanını ayarlama

c# List kullanımı