我们说我创建了一个属性为int?
类型的模型。
public class MyModel
{
[Range(-100, 100, ErrorMessage="Too large")]
public int? MyValue { get; set; }
}
在视图中,我将其用于表单中的文本框以回发到服务器。
@using (Html.BeginForm())
{
<p>Enter some value</p>
<div>@Html.TextBoxFor(m => m.MyValue)</div>
<div>@Html.ValidationMessageFor(m => m.MyValue)</div>
<input type="submit" value="Submit" />
}
这是控制器代码
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyModel();
return View(model);
}
[HttpPost]
public ActionResult Index(MyModel model)
{
return View(model);
}
}
现在,如果我在文本框中输入一个非常大的数字,例如111111111111111111111111111111111111111111111111111111111111111111111111111111
,这对于整数数据类型肯定太大了。在回帖后,得到消息The value '111111111111111111111111111111111111111111111111111111111111111111111111111111' is invalid.
但我无法使用我在模型中定义的错误消息(本地化等)。
答案 0 :(得分:1)
using System.ComponentModel.DataAnnotations;
public class MyModel
{
[Range(int.MinValue, int.MaxValue)]
public int? MyValue {get; set; }
}
这应该可以解决问题。