zoukankan      html  css  js  c++  java
  • Implementing Remote Validation in MVC

    Using Validation Code

    Step 1: Create model for Catalog table and apply the the remote validation for the column that must be validated on client side.

    Step 2: Write a method in controller to check the validation for that column. You can also send the additional parameters by adding AdditionFields attribute.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    using System.Web.Mvc;
    
    namespace ItemCatalog.Models
    {
        public class Catalog
        {
            [Required]
            public long Id { get; set; }
    
            [Required]
            [Display(Name = "Item Name")]
            public string CatalogName { get; set; }
    
            [Required]
            [Display(Name = "Bar code")]
            [Remote("IsBarCodeUnique","Catalog",AdditionalFields="CatalogName",ErrorMessage="This {0} is already used.")]
            public string Barcode { get; set; }
        }
    } 
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using ItemCatalog.Models;
    
    namespace ItemCatalog.Controllers
    {
        public class CatalogController : Controller
        {
            //
            // GET: /Catalog/
    
            public ActionResult Catalog()
            {
                Catalog catalog = new Catalog();
                return View(catalog);
            }
    
            public JsonResult SaveCatalog(Catalog catalog)
            {
                // Action to save the data
                return Json(true);
            }
    
            public JsonResult IsBarCodeUnique(Catalog catalog)
            {
                return IsExist(catalog.CatalogName, catalog.Barcode)
                    ? Json(true, JsonRequestBehavior.AllowGet)
                    : Json(false, JsonRequestBehavior.AllowGet);
            }
    
            public bool IsExist(string catalogName, string barcode)
            {
                //True:False--- action that implement to check barcode uniqueness
    
                return false;//Always return false to display error message
            }
        }
    }
    @model ItemCatalog.Models.Catalog
    @{
        ViewBag.Title = "Catalog";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    @section scripts {
        <style type="text/css">
            .row
            {
                float: left;
                 100%;
                padding: 10px;
            }
            .row label
            {
                 100px;
                float: left;
            }
            
            #success-message
            {
                color: Green;
            }
        </style>
        <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
        <script type="text/javascript">
    
            function SaveCatalogComplete(result) {
                $("#success-message").show();
            }
    
        </script>
    }
    <h2>
        Item</h2>
    @using (Ajax.BeginForm("SaveCatalog", new AjaxOptions { HttpMethod = "POST", OnSuccess = "SaveCatalogComplete" }))
    { 
        
        <fieldset>
            <div class="row">
                @Html.LabelFor(x => x.CatalogName)
                @Html.TextBoxFor(x => x.CatalogName, Model.CatalogName)
                @Html.ValidationMessageFor(x => x.CatalogName)
            </div>
            <div class="row">
                @Html.LabelFor(x => x.Barcode)
                @Html.TextBoxFor(x => x.Barcode, Model.Barcode)
                @Html.ValidationMessageFor(x => x.Barcode)
            </div>
        </fieldset>
       
        <div id="success-message" style="display: none;">
            This record is successfully saved!!
        </div>
        <div>
            <input type="submit" value="Save" />
        </div>
    }

    Step 3: Return the JsonResult object as per validation response.  

    Summary :  

    It's easy to implement and gives the same type of error message results without writing any Ajax to call server side validation.  

  • 相关阅读:
    【Android API】Android 4.1 API官方文档详解
    【Android开发】Android Host详解(翻译自官方文档)
    Android调试桥-Android Debug Birdge详解
    冰淇淋三明治 (Android 4.0)介绍
    Android 4.1的新特性介绍
    【Android UI】如何做一个纯粹的Android app UI 设计
    【Android UI】Android颜色系大全
    【Android开发】交互界面布局详解
    阿里卖电影票 架构思路
    操作系统 虚拟内存 、分段、分页的理解
  • 原文地址:https://www.cnblogs.com/Alex80/p/4710920.html
Copyright © 2011-2022 走看看