So wie der Titel sagt, ich mache alles, um diese Validierung zu funktionieren, mit RegEx und alle, aber es wird einfach nicht funktionieren. Was mache ich hier falsch?Validieren Formular in ASP.NET MVC C#
Sie brauchen nicht auf alle in der Form keine Daten eingeben, können Sie immer noch eine leere Mail senden, und ich nicht will, dass ...
Modell:
using System.ComponentModel.DataAnnotations;
namespace DK_Design.Models
{
public class SendMail
{
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
public string Number { get; set; }
[Required]
public string Message { get; set; }
}
}
Ausblick:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="container">
<div class="row">
<div class="box">
<div class="col-lg-12">
<hr>
<h2 class="intro-text text-center">
Kontakta
<strong>Oss!</strong>
</h2>
<hr>
</div>
<div class="col-md-8">
</div>
<div class="col-md-4">
<p>
Telefon:
<strong>123.456.7890</strong>
</p>
<p>
Email:
<strong><a href="mailto:*****@live.se">*****@live.se</a><!--I am obviously blurring the email on purpose here. The email function itself works.--> </strong>
</p>
<p>
Address:
<strong>
3481 Melrose Place
<br>Beverly Hills, CA 90210
</strong>
</p>
</div>
<div class="clearfix"></div>
</div>
</div>
<div class="row">
<div class="box">
<div class="col-lg-12">
<hr>
<h2 class="intro-text text-center">
Skicka
<strong>Ett Meddelande</strong>
</h2>
<hr>
@if (ViewData["Message"] != null)
{
<div class="alert alert-success">Ditt e-mail har skickats!</div>
}
@if (ViewData["Message"] == null)
{
<div class="alert alert-danger">Ditt e-mail kan inte skickas!</div>
}
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugiat, vitae, distinctio, possimus repudiandae cupiditate ipsum excepturi dicta neque eaque voluptates tempora veniam esse earum sapiente optio deleniti consequuntur eos voluptatem.</p>
<form class="form-wrapper" id="contact-form" method="post" role="form" novalidate>
<div class="form-group">
<div class="row">
<div class="form-group col-lg-4">
<label for="name">
Namn *
</label>
<input type="text" id="name" name="name" class="form-control" data-errmsg="Name is required."
placeholder="Ditt Namn" required />
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="form-group col-lg-4">
<label for="email">
Email *
</label>
<input type="text" id="email" name="email" class="form-control" data-errmsg="Email is required."
placeholder="Ditt Email" required />
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="form-group col-lg-4">
<label for="number">
Telefonnummer
</label>
<input type="text" id="number" name="number" class="form-control"
placeholder="Ditt Telefonnummer" />
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="form-group col-lg-8">
<label for="message">
Meddelande *
</label>
<textarea id="message" name="message" class="form-control" data-errmsg="Message is required."
placeholder="Ditt Meddelande" rows="3" required></textarea>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2 col-sm-2 offset2">
<input style="font-size: 20px" type="submit" id="sendMail" value="Skicka" class="btn btn-primary" />
</div>
</div>
</form>
</div>
</div>
</div>
</div>
Controller:
using DK_Design.Models;
using System.Net.Mail;
using System.Web.Mvc;
namespace DK_Design.Controllers
{
public class KontaktController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(SendMail input)
{
var mail = new MailMessage("*****", "*****");
var client = new SmtpClient("smtp-mail.outlook.com");
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
var credentials = new System.Net.NetworkCredential("*****", "*****");
client.EnableSsl = true;
client.Credentials = credentials;
mail.Body = input.Name + " " + input.Email + " " + input.Number + " " + input.Message;
mail.Subject = "Paket 1";
client.Send(mail);
ViewData["Message"] = mail;
return View(mail);
//Blurring the email information here too ofcourse.
}
}
}
Ich bekomme die Erfolgsmeldung angezeigt, wenn E-Mail gesendet wird, aber nicht umgekehrt.
Gibt es keinen einfacheren Weg, ohne so viel Code zu ändern? – Malphai
Wenn Sie Validierungsnachrichten anzeigen möchten, müssen Sie Code dafür hinzufügen. – Shyju