MVC 中的字段验证
Field Validations in MVC
我想在我正在处理的 MVC 应用程序中对我的视图强制执行字段验证。例如-
- 将字段的长度限制为 40
- 确保只有字母数字和特殊字符 @#$%&*((-_+][';:?.,!可以输入。
我使用了以下内容来限制字段长度:
<div>
<%= Html.TextBoxFor(c => c.CompanyName, new { style = "width:300px", maxlength = "40" })%></div>
如何确保文本框中只能输入字母数字和特殊字符?
编辑:我将模型中的属性更改为
[DataMember(EmitDefaultValue = false)]
[Required(ErrorMessage="CompanyName is Required")]
[StringLength(40, ErrorMessage = "Must be under 40 characters")]
public string CompanyName { get; set; }
为了进行测试,我尝试保存一个空白的公司名称,希望得到服务器错误,因为它是必需的。但是,它会保存空白的公司名称。任何想法可能缺少什么?
这是 MVC 2.0,但也适用于 3.0http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
只需查看数据注释,并进行一些模型验证
编辑:
您的控制器操作将需要类似的东西
if(ModelState.IsValid)
{
//success logic
}
//failure logic
//return to view
您还需要
@Html.ErrorMessageFor(model => model.YourProperty)
为了查看抛出的错误消息。
阅读这篇文章,它比其他任何人都能更好地解释这一点。
只需创建一个像这样的 ViewModel 对象:
class Company
{
[Required]
[StringLength(40)]
[RegularExpression(@"someregexhere")]
public string CompanyName { get; set; }
}
并将您的视图绑定到该模型。这样,您将同时进行服务器端和客户端验证。这真的很容易。
@model Company
@using (Html.BeginForm()) {
Html.EditorFor(x => x.CompanyName)
<input type="submit" value="Save" />
}
哦,这个例子使用Razor(MVC3(,顺便说一句,据我所知,MVC2的工作方式几乎相同。
然后,只需通过检查 ModelState.IsValid,在控制器中验证传入的 ViewModel。
相关文章:
- 为什么regex只验证字段中的一个字符,而不是所有输入的字符
- 验证字段名称 添加 与 使用 jquery 验证
- Jquery验证字段是否包含逗号
- jQuery验证字段名包含方括号的组
- 如何使用display验证字段:使用Parsley JS没有
- 滚动至联系人表格7中的已验证字段(wordpress)
- 在php中验证字段时,java脚本不起作用
- 字段验证:字段需要 JavaScript 正则表达式
- 挖空验证:如何在按钮单击时验证字段,而不是在输入更改时验证字段
- jQuery:在提交之前验证字段(多步骤表单)
- 禁用表单提交,直到使用 jQuery 验证字段
- JavaScript 单选按钮选择验证字段
- 尝试使用 jQuery - 自定义函数动态验证字段
- 验证字段中的jQuery布尔值问题
- 为什么我的表单没有't验证字段
- Javascript未验证字段
- 输入字段模糊时,验证字段,如果无效则取消模糊事件
- 更改时验证字段-datetimepicker
- 使用BootstrapValidator重新验证字段
- Jquery动态验证字段