MVC3我的一些字段验证,而有些则不验证

时间:2012-02-15 10:32:30

标签: asp.net-mvc-3 validation

我坐在这里,在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>

}

2 个答案:

答案 0 :(得分:2)

您拥有POWeb.Models.AddModel类型的视图,但您尝试验证Order类型。我很确定这些类型的验证属性不一样,所以你会遇到问题

答案 1 :(得分:0)

的Anders,

我的猜测是,您的ViewModel模型POWeb.Models.AddModel未反映[Required]上的OrderNumber属性。您是否可以将AddModel的定义添加到您的问题中以便进行验证,因为订单类的可能性很大。