我坐在这里,在ASP MVC3中遇到验证问题。
不知何故,我能够验证字段数量,但OrderNumber字段不验证。我可以把它留空,它仍然接受它。我也尝试添加其他限制(例如最大和最小长度)但结果相同 - 它接受任何内容。
我也尝试将'TextBoxFor'更改为'EditorFor' - 但结果相同。
另一方面,数量按我的意愿运作。它要求您输入一个整数,它不能为空。
希望你们中的一些人能够看到我在这里做错了什么:)
这是我的模特:
public class Order
{
[Required(ErrorMessage="Insert Ordernumber (6-digits)")]
public string OrderNumber { get; set; }
[Required]
public string Partnumber { get; set; }
[Required]
public long Quantity { get; set; }
public Order()
{
}
}
以下是我的观点:
model POWeb.Models.AddModel
@using(Html.BeginForm(“Add”,“Home”,FormMethod.Post)) {
//Create table
<table>
<tr>
<td>Select Partnumber to produce</td>
<td>@Html.DropDownListFor(model => model.SelectedPartNumber, Model.PartNumbers)</td>
</tr>
<tr>
<td>Enter PO number</td>
<td>@Html.TextBoxFor(model => model.OrderNumber)@Html.ValidationMessageFor(model => model.OrderNumber)</td>
</tr>
<tr>
<td>Quantity</td>
<td>@Html.TextBoxFor(model => model.Quantity)@Html.ValidationMessageFor(model => model.Quantity)</td>
</tr>
<tr>
<td colspan="2">
<button type="submit" name="SubmitButton">Add</button>
</td>
</tr>
</table>
}
答案 0 :(得分:2)
您拥有POWeb.Models.AddModel
类型的视图,但您尝试验证Order
类型。我很确定这些类型的验证属性不一样,所以你会遇到问题
答案 1 :(得分:0)
的Anders,
我的猜测是,您的ViewModel模型POWeb.Models.AddModel
未反映[Required]
上的OrderNumber
属性。您是否可以将AddModel
的定义添加到您的问题中以便进行验证,因为订单类的可能性很大。