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)
{
} --------------------编程问答--------------------
额,现在加上了,但是如果我什么都不填写,就应该显示错误提示啊。怎么没错误提示?
[Required(ErrorMessage="必选")]
也就页面验证没起效
我看了下页面加载的JS 有
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusiva-ajax.min.js
···该有的都有啊
--------------------编程问答--------------------
加载了js
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusiva-ajax.min.js
但js 验证没效果,直接到Action了 --------------------编程问答--------------------
加载了
jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusiva-ajax.min.js --------------------编程问答--------------------
浏览器可以运行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