2012-02-15 4 views
0

ここに座って、ASP MVC3の検証の問題で私の頭を傷つけています。MVC3いくつかのフィールドは有効ではありません。

何とか私はフィールドQuantityを検証することができますが、フィールド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

あなたは絶対に正しいです。 モデルとして 'Order'を使用するように変更しましたが、今では機能しています(不要なAddModelを削除しました)。それはルーキーミスでした。何度か余分な目をするのはニース。あなたの助けをありがとう:) – AndersLindas

+0

@AndersLindasようこそ – archil

0

アンダース、

私の '推測では、' あなたのViewModelモデルPOWeb.Models.AddModelOrderNumber[Required]属性をミラーリングされていないということです。 Orderクラスが異なる可能性が高いので、確認のために質問にAddModelの定義を追加できますか。

+0

助けてくれて嬉しいです。 –

+0

ありがとうございました。私が実際にやっている恐ろしいことを考えました:) hehe .. – AndersLindas

関連する問題