MVC 5内置验证消息,不会显示小数类型
我有一个问题,内置的验证消息不显示在小数类型的字段上。 Int类型按预期工作,不需要任何数据注释。 我有以下模型:
public class Expense
{
public vwExpenseHeader ExpenseHeader { get; set; }
public tblExpenseDetail[] ExpenseDetail { get; set; }
}
在我看来,这是:
@for (int i = 0; i < 7; i++)
{
<td>@Html.EditorFor(m => m.ExpenseDetail[i].Breakfast, new { htmlAttributes = new { @class = "form-control", @onblur = "setCategoryTotal(this.id);" } })</td>
}
在控制器中:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Expense expense)
{
if (ModelState.IsValid)
{
using (AccountingClient acc = new AccountingClient())
acc.ExpenseHeaderInsertOrUpdate(expense.ExpenseHeader, expense.ExpenseDetail);
return View("Saved");
}
else
return View(expense);
}
ModelState.IsValid调用确实可行,但验证失败的字段上不会显示任何消息。 对于int字段
@for (int i = 0; i < 7; i++)
{
<td>@Html.EditorFor(m => m.ExpenseDetail[i].Mileage, new { htmlAttributes = new { @class = "form-control", @onblur = "setCategoryTotal(this.id);" } })</td>
}
它按预期工作。 消息“请输入一个数字。” 出现。
我有这个部分课程
[MetadataType(typeof(tblExpenseDetailMetaData))]
public partial class tblExpenseDetail
{
public string DateOfExpenseString
{
get { return DateOfExpense.ToString("MM/dd/yyyy"); }
}
}
和这个元数据类
public class tblExpenseDetailMetaData
{
[DataType(DataType.Currency)]
public decimal Breakfast;
}
在我试过的元数据类中:
[范围(0,double.MaxValue,ErrorMessage =“请输入有效的doubleNumber”)]
和
[范围(0,1000)]
int和decimal都是可为空的类型,所以我尝试将decimal设置为非空类型,但结果相同。
添加@ Html.ValidationMessageFor作品,我将可能不得不使用这种方法,但如果我可以获取内置验证消息来显示,则不需要此方法。
任何帮助或建议表示赞赏。
我的错。 MVC的新手,并且将输入上的html5数字属性与我认为在MVC验证中构建的内容混淆起来。
链接地址: http://www.djcxy.com/p/56615.html上一篇: MVC 5 built in validation message not showing for decimal types
下一篇: How to create validation Message for fields in razor MVC using ViewModel