asp.net MVC3 model远程验证

         只所以说是MVC3,是因为这个远程验证的方法,只有MVC3中才有。所以想用的兄弟们就只能去下个MVC3了,当然还要安装framework4.0.

          不多说,上代码:

          model层:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//下面这二个引用一定要加上,不然不好用
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace TestMVC.Models
{
    public class Eorgans
    {
        /// <summary>
        /// 机构标识种子
        /// </summary>
        
        [Range(0, 9,ErrorMessage="只能输入0-9之间的数")]
        public int sortId { get; set; }

        /// <summary>
        /// 机构名称
        /// </summary>
        [Required(ErrorMessage = "机构名称不为空")]
        //这里就是所谓的远程验证。它有三个变量,第一个是控制器名,第二个是Action名,
        //最后那个是验证不通过的提示文本(查看RemoteAttribute的元数据代码可以发现其实还有一个重要的参数,
        //最完全的构造函数如下:public RemoteAttribute(string action, string controller, string areaName); 
        //可以看到还可以指示到某个Area的。
        [Remote("ValName", "Organ", ErrorMessage = "该姓名已存在")] 
        public string or_Name { get; set; }

        /// <summary>
        /// 机构的sortcode
        /// </summary>
        [StringLength(4), Required(ErrorMessage="字符最多4位")]
        public string sortCode { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string or_id { get; set; }
    }
}


C层:

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using TestMVC.Models;

namespace TestMVC.Controllers
{
    public class OrganController : Controller
    {
        //
        // GET: /Organ/
        DBClass db = new DBClass();

        public ActionResult Index()
        {
            IEnumerable<Eorgans> list = db.organsList();
            return View(list);
        }


        public ActionResult AddOrgan()
        {
            Eorgans eo = new Eorgans();
            return View(eo);
        }

        [HttpPost]
        public ActionResult AddOrgan(Eorgans eo)
        {
            if (ModelState.IsValid)
            {
                string tempstr = eo.or_Name + eo.sortCode + eo.sortId;
                return Content(tempstr);
            }
            
            return View(eo);
        }
       
        //这里,就是远程验证了,大家要注意的是一定要是httpget方法,不能是post的,而且返回值必须是一个json值,而不能是bool值。
        //这里你可以写一些连库的验证语句,来达到真实的远程验证
        //还有一点就是这里的organName是你前面表单文本框的name
        [HttpGet]
        public ActionResult ValName(string or_Name)
        {
            return Json(or_Name!= "chen", JsonRequestBehavior.AllowGet);
        }

    }
}

V层:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TestMVC.Models.Eorgans>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
	AddOrgan
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <h2>AddOrgan</h2>

    <% using (Html.BeginForm()) {%>
        <%= Html.ValidationSummary(true) %>

        <fieldset>
            <legend>Fields</legend>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.sortId) %>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.sortId) %>
                <%= Html.ValidationMessageFor(model => model.sortId) %>
            </div>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.or_Name) %>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.or_Name) %>
                <%= Html.ValidationMessageFor(model => model.or_Name) %>
            </div>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.sortCode) %>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.sortCode) %>
                <%= Html.ValidationMessageFor(model => model.sortCode) %>
            </div>
            
            <div class="editor-label">
                <%= Html.LabelFor(model => model.or_id) %>
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.or_id) %>
                <%= Html.ValidationMessageFor(model => model.or_id) %>
            </div>
            
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>

    <% } %>

    <div>
        <%= Html.ActionLink("Back to List", "Index") %>
    </div>

</asp:Content>


试一下吧

      


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值