Пользовательские поля формы проверки Umbraco (подтверждение)

Я хотел бы написать простое поле проверки электронной почты для подтверждения в форме, как лучше всего? вот мой код до сих пор, просто основная форма. Для поля подтвержденияEmail я хотел бы иметь проверку в реальном времени, такую ​​​​как поле электронной почты, а не только при отправке, как я:

контроллер

 public class ContactController : SurfaceController
{

    /// <summary>
    /// Renders the Contact Form
    /// @Html.Action("RenderContactForm","ContactFormSurface");
    /// </summary>
    /// <returns></returns>
    public ActionResult Index()
    {
        //Return a partial view ContactForm.cshtml in /views/ContactFormSurface/ContactForm.cshtml
        //With an empty/new ContactFormViewModel
        return PartialView("Contact", new Contact());
    }

    [HttpPost]
    public ActionResult Send(Contact Model)
    {

        //Check if the dat posted is valid (All required's & email set in email field)
        if (!ModelState.IsValid)
        {
            //Not valid - so lets return the user back to the view with the data they entered still prepopulated                
            return CurrentUmbracoPage();
        }

        //Check if the dat posted is valid (All required's & email set in email field)
        if (Model.Email != Model.ConfirmEmail)
        {
            //Not valid - so lets return the user back to the view with the data they entered still prepopulated                
            return CurrentUmbracoPage();
        }

        //Update success flag (in a TempData key)
        TempData["IsSuccessful"] = true;

        TempData["Name"] = Model.Name;
        TempData["Email"] = Model.Email; 

        //All done - lets redirect to the current page & show our thanks/success message
        return RedirectToCurrentUmbracoPage();

    }

}

модель

 namespace CribisWeb.Models
{
public class Contact
    {
        [Required]
        [DisplayName("Nome")]
        public string Name { get; set; }

        [Required]
        [EmailAddress]
        [DisplayName("Email")]
        public string Email { get; set; }

        [Required]
        [EmailAddress]
        [DisplayName("Conferma Email")]
        public string ConfirmEmail { get; set; }

    }
}

Посмотреть

    @model CribisWeb.Models.Contact

@if (Convert.ToBoolean(TempData["IsSuccessful"]))
{
    <h1>YAY!</h1>
    <p>Thanks for sending your message, we will get back to you shortly.</p>
    <p>
        @TempData["Name"]
        @TempData["Email"]
    </p>
}
else
{
    using (Html.BeginUmbracoForm<CribisWeb.Controllers.ContactController>("Send"))
    {
    @Html.ValidationSummary(true)

    <div>

        <br />
        @Html.LabelFor(x => x.Name)
        @Html.TextBoxFor(x => x.Name)
        @Html.ValidationMessageFor(x => x.Name)
        <br />
        @Html.LabelFor(x => x.Email)
        @Html.TextBoxFor(x => x.Email)
        @Html.ValidationMessageFor(x => x.Email)
        <br />
        @Html.LabelFor(x => x.ConfirmEmail)
        @Html.TextBoxFor(x => x.ConfirmEmail)
        @Html.ValidationMessageFor(x => x.ConfirmEmail)
        <br />
    </div>
    <input type="submit" value="Submit" class="btn-accept" />
    }

   }

БЛАГОДАРНОСТЬ


person PandaSharp    schedule 21.05.2014    source источник
comment
Привет! Почему бы вам не отправить электронную почту непосредственно перед TempData[IsSuccessful] = true; ?   -  person amir moradifard    schedule 21.05.2014
comment
@amirmoradifard Не могли бы вы объяснить лучше? Благодарность   -  person PandaSharp    schedule 22.05.2014


Ответы (1)


решено, это было очень просто, в модели:

[Required]
[EmailAddress]
[DisplayName("ConfirmEmail")]
[Compare("Email", ErrorMessage = "The Email and confirmation Email do not match.")]
public string ConfirmEmail { get; set; }
person PandaSharp    schedule 22.05.2014