Utilisation de MVC Framework avec le codage C #. Les vues sont écrites en code HTML standard. J'ai besoin d'un message de confirmation disant "Votre message a été envoyé" une fois que l'utilisateur a cliqué sur le bouton d'envoi
Voici le contrôleur:
public ActionResult Index(ContactViewModel contactVM){
if (!ModelState.IsValid)
{
string url = Request.UrlReferrer.AbsolutePath+ "#contact";
return View();
}
else
{
var contact = new Contact
{
Name = contactVM.Name,
Email = contactVM.Email,
Subject = contactVM.Subject,
Message = contactVM.Message
};
new Email().Send(contact);
return RedirectToAction("Index");
}
Voici la vue:
<input type="submit" class="submit_btn left" name="Submit" id="submit" value="Submit"/>
<input type="reset" class="submit_btn right" name="Reset" id="reset" value="Reset" />
Aider avec bonté.
Au lieu de RedirectToAction()
, retournez View
:
new Email().Send(contact);
ViewBag.Message = "Message Sent";
return View();
En vue:
@if(ViewBag.Message != null)
{
<script>
$(document).ready(function(){
alert('@ViewBag.Message');
});
</script>
}
Ajouter un contrôleur interne
ViewBag.IsEmailSent=true;
public ActionResult Index(ContactViewModel contactVM){
if (!ModelState.IsValid)
{
string url = Request.UrlReferrer.AbsolutePath+ "#contact";
return View();
}
else
{
var contact = new Contact
{
Name = contactVM.Name,
Email = contactVM.Email,
Subject = contactVM.Subject,
Message = contactVM.Message
};
new Email().Send(contact);
ViewBag.IsEmailSent=true;
return RedirectToAction("Index");
}
Page index.cshtml
@if(ViewBag.IsEmailSent)
{
<script>
$(function(){
$("#successModal").modal('show'); });
</script>
}
Remplacez le résultat (de RedirectToAction("Index")
) par une vue fournissant la confirmation.
Si vous ne voulez pas que quelque chose soit la plupart du temps une copie d'une page existante (telle que Index
), transmettez un objet contenant un indicateur ShowConfirmation
et, dans la vue Index, une logique permettant d'afficher la confirmation si cet indicateur est défini.