Создайте страницу контактов в c # html - PullRequest
0 голосов
/ 11 мая 2018

Прежде всего, я искал и перепробовал множество примеров, прежде чем решил задать этот вопрос.Я создаю веб-сайт в Visual Studio 2013, на C #.

У меня есть Контактная страница с формой, которую люди должны заполнить.После моего поиска здесь и на нескольких страницах я не смог заставить работать какой-либо код для моего сайта.

Как это сделать, чтобы отправить информацию в форме на мой электронный адрес?

Контроллер:

namespace SiteTESTE.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Contacto()       
        {        
            return View();
        } 

HTML-код:

<body>
    <p>Se pretender mais informações sobre os nossos sistemas de relva artificial, produtos, orçamentos ou fichas técnicas, por favor não hesite em contactar-nos!</p>

    <div class="container">
        <div class="row">
            <div class="column">
                <div id="map" style="width:100%;height:500px"></div>
            </div>
            <div class="column">
                <form action="/action_page.php">
                    <input type="text" id="fname" name="firstname" placeholder="O seu nome.." required>
                    <input type="text" id="lname" name="lastname" placeholder="O seu último nome.." required>
                    <input type="text" name="email" placeholder="Email" required>
                    <textarea id="subject" name="subject" placeholder="Escreva o seu texto.." style="height:170px" required></textarea>
                    <br />
                    <input type="submit" value="Enviar">
                </form>
            </div>
        </div>
    </div>

    <script>
        // Initialize google maps
        function myMap() {
            var myCenter = new google.maps.LatLng(51.508742, -0.120850);
            var mapCanvas = document.getElementById("map");
            var mapOptions = { center: myCenter, zoom: 12 };
            var map = new google.maps.Map(mapCanvas, mapOptions);
            var marker = new google.maps.Marker({ position: myCenter });
            marker.setMap(map);
        }
    </script>

    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBu-916DdpKAjTmJNIgngS6HL_kDIKU0aU&callback=myMap"></script>

</body>
</html>

1 Ответ

0 голосов
/ 11 мая 2018

Установите форму для отправки содержимого в действие на контроллере.

<form action="@Url.Action("Send", "Contact")" method="post">

Введите код для отправки электронного письма.

public class ContactController : Controller
{
    [HttpPost]
    public ActionResult Send(ContatcViewModel model) {
        if (ModelState.IsValid) {
            // example code from link
            try {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("your_email_address@gmail.com");
                mail.To.Add("to_address");
                mail.Subject = "Test Mail";
                mail.Body = "This is for testing SMTP mail from GMAIL";

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
            }
            catch (Exception ex)
            {
                // code
            }
        }

        return View();
    }
}

Не рекомендуется писать код для отправки почты в действии. Но это пример.

ContatcViewModel должен соответствовать полям форм.

public class ContatcViewModel {
    public string firstname {get; set;}
    public string lastname {get; set;}
    public string email {get; set;}
    public string subject {get; set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...