Validating forms in html
As several people have said, since you're using data annotation (the [Required] tag in your viewmodel), the good news is that you don't have to add too much to fix your problem.
To prevent it from sending blank emails, add the following to your controller: The Model State will be valid only if the incoming data is not null, which will prevent the rest of the code from being reached (and sending the email).
As web developers, we want to protect the information filled out in form fields.
Bad information leads to bad user interactions, bad analytics and bad sales. Email addresses should always have the same structure: [email protected] . An email form field should check if the user has entered an email address correctly.
Josh also teaches full-stack web development at the UCI Coding Bootcamp.
When Josh isn’t building websites, he’s building websites.
There's a tutorial here on Model State that's worth reading.
The tutorial also discusses adding custom validators, which you may find useful if you need validation outside the provided MVC data annotations.
Using the html attributes we have available as well as some hard-working, built-in Java Script functions, we can do simple client-side form validation.
You would add the validation check/message directly to your view, in the form group for the user input: The html helper Validation Message For will look at your model and grab the message you've listed as being for validation and will display it when the user attempts to post the page.
Along with the other data annotation on your model variables and a Model State check, it will prevent the user from going forward until the fields have content that meets your checks and prevent the rest of the controller method from executing in the event that something null gets past your checks.
attribute works with the following input types: text, search, url, tel, email, and password.
Tip: Use the global title attribute to describe the pattern to help the user.