当前位置:编程学习 > C#/ASP.NET >>

mvc 3 表达不验证的问题

刚学mvc3 根据系统vs 自动创建view 层,但不验证

代码如下:

Model
public class RemindReacords
    {

        /// <summary>
        /// 记录编号
        /// </summary>
        [Required]
        [Display(Name = "记录编号")]
        public virtual int ID
        {
            get;
            set;
        }
        /// <summary>
        /// 群众编号
        /// </summary>
        [Required]
        [Display(Name = "群众编号")]
        public virtual CustomInfo qzID
        {
            get;
            set;
        }
        /// <summary>
        /// 提醒类别
        /// </summary>
        [Required(ErrorMessage="必选")]
        [Display(Name = "提醒类别")]
        public virtual RemindType remindType
        {
            get;
            set;
        }
        /// <summary>
        ///提醒方式 1:语音,2:短信
        /// </summary>
        [Display(Name = "提醒方式")]
        [Required(ErrorMessage = "必选")]
        public virtual int? remindingType
        {
            get;
            set;
        }
        /// <summary>
        /// 提醒内容
        /// </summary>
        [Required]
        [StringLength(300,ErrorMessage="最多300个字符")]
        [Display(Name = "提醒内容")]
        public virtual string content
        {
            get;
            set;
        }
        /// <summary>
        /// 提醒时间
        /// </summary>
        [Display(Name = "提醒时间")]
        [Required(ErrorMessage = "必填")]
        public virtual DateTime? remidTime
        {
            get;
            set;
        }
        /// <summary>
        /// 提醒人编号
        /// </summary>
        [Display(Name = "提醒人编号")]
        [Required(ErrorMessage = "必选")]
        public virtual UserRole reminderID
        {
            get;
            set;
        }
        /// <summary>
        /// 下次提醒时间
        /// </summary>
        [Display(Name = "下次提醒时间")]
        public virtual DateTime? nextRemind
        {
            get;
            set;
        }
        /// <summary>
        /// 提醒结果
        /// </summary>
        [Display(Name = "提醒结果")]
        public virtual int? remindResult
        {
            get;
            set;
        }
        /// <summary>
        /// 提醒状态 1:提醒完成 2:未提醒
        /// </summary>
        [Display(Name = "提醒状态")]
        public virtual int? remindStatus
        {
            get;
            set;
        }

    }


View
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>RemindReacords</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.remindingType)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.remindingType)
            @Html.ValidationMessageFor(model => model.remindingType)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.content)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.content)
            @Html.ValidationMessageFor(model => model.content)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.remidTime)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.remidTime)
            @Html.ValidationMessageFor(model => model.remidTime)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.nextRemind)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.nextRemind)
            @Html.ValidationMessageFor(model => model.nextRemind)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.remindResult)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.remindResult)
            @Html.ValidationMessageFor(model => model.remindResult)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.remindStatus)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.remindStatus)
            @Html.ValidationMessageFor(model => model.remindStatus)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}


什么都不选填写时,照常理应该提示错误信息,但不提示错误,表单提交到了Controllers
--------------------编程问答-------------------- Action里面写:

if (ModelState.IsValid)
{
   添加到数据库
} --------------------编程问答-------------------- View页面需要加载了Jquery --------------------编程问答-------------------- 浏览器右键查看源代码 看一下 该加载的 JS 是否加载了. --------------------编程问答-------------------- 首先在web.config里面看看在appSettings下面
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

然后页面有没有加载
juqery 和 jquery.unobtrusive-ajax.js
--------------------编程问答-------------------- 表单提交到了Controllers前  if (ModelState.IsValid)
{
} --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
Action里面写:

if (ModelState.IsValid)
{
   添加到数据库
}


额,现在加上了,但是如果我什么都不填写,就应该显示错误提示啊。怎么没错误提示?
 [Required(ErrorMessage="必选")]
也就页面验证没起效
我看了下页面加载的JS 有
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusiva-ajax.min.js

···该有的都有啊

--------------------编程问答--------------------
引用 4 楼 zhujiazhi 的回复:
首先在web.config里面看看在appSettings下面
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

然后页面有没有加载
juqery 和 jquery.unobtrusive-ajax.j……


加载了js 
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusiva-ajax.min.js


但js 验证没效果,直接到Action了 --------------------编程问答--------------------
引用 3 楼 tsgx_1989 的回复:
浏览器右键查看源代码 看一下 该加载的 JS 是否加载了.

加载了

jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusiva-ajax.min.js --------------------编程问答--------------------
引用 7 楼 Baykermr 的回复:
引用 4 楼 zhujiazhi 的回复:首先在web.config里面看看在appSettings下面
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

然后页面有没有加载
juqery 和 jque……


浏览器可以运行js不?
看看最终生成的html代码,
比如一个UserName需要必须填写,则生成的代码如下:
<input data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" type="text" value="" />
--------------------编程问答-------------------- 缺少 jquery-1.5.1.min.js  --------------------编程问答-------------------- @Html.ValidationMessageFor(model => model.remindResult)
少了这一句,那些必选的,都要加上这一句
前台就会阻止提交的了 --------------------编程问答-------------------- 我的也不好使,点击提交就刷新了一下页面什么反应都没有,无论填写不填写都没有任何错误提示
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,