Quantcast
Channel: ASP.NET Core
Viewing all articles
Browse latest Browse all 9386

Clear user INPUT after submit (OnPost) Task

$
0
0

I have  a razor page for a contact page, once I have submitted a request the email is sent however on success I want the user input to be cleared to prevent them from sending the information several times.

Web page

@page
@model ContactModel
@{
    ViewData["Title"] = "Contact";

}
<h2>@Model.Message</h2><div class="container"><div class=" = row"><div class="col-sm-6"><address>
                One Microsoft Way<br />
                Redmond, WA 98052-6399<br /><abbr title="Phone">P:</abbr>
                425.555.0100</address><address><strong>Support:</strong> <a href="mailto:Support@example.com">Support@example.com</a><br /><strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a></address></div><div class="col-sm-6"><form method="post"><table class="tblcontact"><tr><td><div asp-validation-summary="All" class="text-danger"></div></td></tr><tr><td><input asp-for="ContactEmail.FirstName" id="FirstName" type="text" placeholder="First Name" /><span asp-validation-for="ContactEmail.FirstName" class="text-danger"></span></td></tr><tr><td><input asp-for="ContactEmail.LastName" id="LastName" type="text" placeholder="Last Name" /><span asp-validation-for="ContactEmail.LastName" class="text-danger"></span></td></tr><tr><td><input asp-for="ContactEmail.Email" id="Email" type="text" placeholder="Email" /><span asp-validation-for="ContactEmail.Email" class="text-danger"></span></td></tr><tr><td><select asp-for="ContactEmail.Service" asp-items="Html.GetEnumSelectList<DigitalAcademyCorp.Models.DACServices>()"><option>Select</option></select><span asp-validation-for="ContactEmail.Service" class="text-danger"></span></td></tr><tr><td><textarea asp-for="ContactEmail.Comment" class="ctext" cols="42" row="100" placeholder="Message" required></textarea><span asp-validation-for="ContactEmail.Comment" class="text-danger"></span></td></tr><tr><td><input class="btn contact-submit" id="Submit" type="submit" value="Submit" /></td></tr></table></form></div></div></div>
@section Scripts{ <partial name="_ValidationScriptsPartial" />

Page Controller/Model

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using DigitalAcademyCorp.Models;
using DigitalAcademyCorp.Services;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.ComponentModel.DataAnnotations;

namespace DigitalAcademyCorp.Pages
{
    public class ContactModel : PageModel
    {
        private readonly IEmailService _mailSender;

        public ContactModel(IEmailService mailSender)
        {
            _mailSender = mailSender;
        }

        public string Message { get; set; }
        [BindProperty]
        public ContactEmail ContactEmail { get; set; }
        [BindProperty]
        public Message EmailMessage { get; set; }

         public void OnGet()
        {
            Message = "We are keen to hear what you have to say.";
        }

        public async Task OnPost()
        {
            if(ModelState.IsValid)
            {
                EmailMessage.From = ContactEmail.Email;
                EmailMessage.Body = ContactBody(ContactEmail.FirstName, ContactEmail.LastName, ContactEmail.Service.ToString(), ContactEmail.Comment);
                EmailMessage.Subject = ContactEmail.Service.ToString();
                try
                {
                    await _mailSender.Send(EmailMessage); //EMAIL LOW APPS ACCESS GOOGLE
                    

                } catch (Exception)
               {
                   Message = "Oops there seems to be an error sending your message";
               }                
            }
            else
            {
                Message = "Oops you inputs are not valid for the page";
            }
        }
        private string ContactBody(string FName,string LName,string DACService,string Comment)
        {
            string htmlbody = "<table><tr><div>Hi " + FName + " " + LName + "</div> </tr> <tr><div><br><p>Thank you for contacting Example <strong>E</strong>. We are pleased that you are interested in our <strong>" + DACService + "</strong> offering. <br><br> We will be responding to your message below shortly <br><br><em>" + Comment + "</em><br></p> </div> </tr> <tr> <div><br> <p>Thank you <br> <br> <strong>Example</strong> </p> </div> </tr></table>";

            return htmlbody;
        }
    }
}

Please help

Thank you,


Viewing all articles
Browse latest Browse all 9386

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>