2016-06-08 90 views
0

刚学关于验证的,所以我对我的模型是这样定义的属性:数字验证一个HTML文本框

public string NumberOfThings { get; set; } 

,并为它这样的HTML:

@Html.TextBoxFor(t => t.NumberOfThings , new {style = "width: 10%", @class = "form-control"}) 

现在我想为它添加验证,数据在数据库模式中保存为字符串。我的验证逻辑希望它说任何大于0的数字都可以。

所以我学到了验证,我也可以做这样的事情:

[StringLength(3, MinimumLength = 1)] 
public string SelectedQuestions { get; set; } 

,然后是aboe地看到,哦,我的ModelState无效。
但是因为我是新手,所以我无法弄清楚什么是正确的验证我应该注释我的财产,所以它说任何大于0的数字都可以。

回答

2

一些东西是一个int而不是一个字符串。

,你可以这样做:在你的HTML

[Range(1, int.MaxValue, ErrorMessage = "some message")] 
public int NumberOfThings { get; set; } 

然后使用ValidationFor,它会看着你已经在你的模型中定义的:

@Html.EditorFor(model => model.NumberOfThings) 
@Html.ValidationMessageFor(model => model.NumberOfThings)