2012-02-15 87 views
0

我坐在这里用ASP MVC3中的验证问题抓我的头。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

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

+0

你是绝对正确的。 我改为使用'订单'作为模型,现在它工作(删除添加模型,因为它不需要)。这是一个菜鸟的错误。很高兴再次获得一些额外的眼睛。感谢您的帮助:) – AndersLindas 2012-02-15 11:16:18

+0

@AndersLindas不客气 – archil 2012-02-15 11:28:36

0

安德斯,

我的 '猜测' 是您的视图模型的模型POWeb.Models.AddModel不上OrderNumber镜像[Required]属性。您能否将AddModel的定义添加到您的问题中以进行验证,因为订单类别可能不同。

+0

很高兴能得到帮助:) – 2012-02-15 10:57:00

+0

是的,谢谢你的帮助。让我想起我实际上在做的可怕事情:)嘿嘿.. – AndersLindas 2012-02-15 11:17:25