我有以下一套:
public class Account : AuditableTable, IAccount
{
}
public class Product : AuditableTable
{
}
public abstract class AuditableTable
[Range(0, 99, ErrorMessage = "Position must be between 0 and 99.")]
[DisplayName("Position")]
public int? Position { get; set; }
在我看来:
<div class="adm_td0">
@Html.TextBoxFor(model => model.Account.Position, new { size = 4 })
</div>
<div class="adm_td0">
@Html.ValidationMessageFor(model => model.Account.Position)
</div>
当我输入大于99的数字时,接受该数字。有谁知道为什么会这样?当我检查我的源代码时,我看到了
<input id="Product_Position" type="text" value="24788" size="4" name="Product.Position" data-val-range-min="0" data-val-range-max="99" data-val-range="Position must be between 0 and 99." data-val-number="The field Position must be a number." data-val="true">
但是没有检查页面上或服务器上的内容。
在页面上,我包含了以下Javascripts:
"~/Scripts/jquery/jquery-1.6.1.min.js"
我想我错过了什么,所以没有客户验证。但是仍然没有服务器验证吗?
如果我在客户端上进行验证,那么我是否需要包含以下所有内容:
"~/Scripts/jquery.unobtrusive-ajax.min.js"
"~/Scripts/jquery.validate.js"
"~/Scripts/jquery.validate.unobtrusive.js"
答案 0 :(得分:0)
尝试将您的查看代码更改为:
@Html.EditorFor(model => model.Account.Position)
应该有效
此外,您需要包含
“〜/脚本/ jquery.unobtrusive-ajax.min.js”
“〜/脚本/ jquery.validate.js”
“〜/脚本/ jquery.validate.unobtrusive.js”
否则您的验证将无法在该页面上使用