DropdownList Validation

CSharp · Mvc

Model

using System;
using System.ComponentModel.DataAnnotations;
using System.Collections;
using System.Web.Mvc;

namespace HelloWorldMvcApp
{
	public class SampleViewModel
	{
		
		
		[Required(ErrorMessage="Please Select a Country")]
        public int RoleId { get; set; }
		public SelectList Roles { get; set; }
		[Required(ErrorMessage="Please Enter a name")]
		public string name{get;set;}
	}
}

View

@model HelloWorldMvcApp.SampleViewModel
@{
	Layout = null;
}

<!DOCTYPE html>
<!-- template from http://getbootstrap.com/getting-started -->

<html lang="en">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>Bootstrap 101 Template</title>

		<!-- CSS Includes -->
		<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
		<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.7.3/css/bootstrap-select.css"/>
		
		<style type="text/css">

			.field-validation-error {
				color: #ff0000;
			}

		</style>
	</head>
	
	<body>
		<div class="container">
			<div class="col-md-6 col-md-offset-3">
				<h1>Hello Stranger</h1>
	
				@using (Html.BeginForm("", "", FormMethod.Post, 
                             new { enctype = "multipart/form-data", id="frmSample" }))
				{
					<div class="form-group">
						@Html.DropDownListFor(m => m.RoleId, Model.Roles, "Please Select your Country", new{@class="selectpicker"})
						@Html.ValidationMessageFor(m=>m.Roles)
					</div>
					<div class="form-group">
						@Html.TextBoxFor(m => m.name, null, new{@class="form-control"})
						@Html.ValidationMessageFor(m=>m.name)
					</div>
					<button type="button" class="btn btn-success submit">Ask</button>
				}
	
				<br/><br/>
				<div class="alert alert-warning fade">
					<img src="http://entechprod.blob.core.windows.net/dotnetfiddle/morpheus.jpg" style="max-width:100%;"/><br/><br/>
					<strong><span class="alert-content"></span></strong>
				</div>
			</div>
		</div>

		<!-- JS includes -->
		
		<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
		<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
		<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.7.3/js/bootstrap-select.js"></script>
		<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
		<script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
		
		<script type="text/javascript">
			$(document).ready(function(){
				$('.selectpicker').selectpicker();
				$("#frmSample").validate({
  					onfocusout: true
				});
			
			});
			
			
			$('.submit').on('click',function(){
				console.log($("#frmSample").valid())
				if($("#frmSample").valid())
					alert(true);
			});

		</script>
	</body>
</html>

Controller

using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
	public class HomeController : Controller
	{
		[HttpGet]
		public ActionResult Index()
		{
			SampleViewModel model=new SampleViewModel();
			model.Roles = new SelectList(new string[] { "Admin", "Manager" });
			return View(model);
		}


		
	}
}
;