2011-07-28 7 views
4

私を助けてください。剃刀:@ Html.HiddenFor()は妥当性検査を無効にする必要があります

私はクラスを持っている:

public class Product 
{ 
    ... 

    // NOT REQUIRED! 
    public virtual Category Category{ get; set; } 
} 

しかし、ビューで、私は

@Html.HiddenFor(model => model.Category.Id), or 
@Html.Hidden("model.Category.Id", model => model.Category.Id) 

を作成かみそりは、これに検証属性を追加します。

  1. どのようにオフにするのですか? (モデル内、ビュー内)
  2. プロパティに[必須]属性がある場合、検証イベントをオフにする方法はありますか?

これは面倒な問題ではなく、MVCのどこかにあることがわかりました。 "Category.Id" value = ""をサーバーに渡してもTryModelUpdate()は失敗します。 "Category.Id"が設定されている必要がありますが、私のモデルでは必要ありません。

どうしてですか?

答えて

0

セットアップは次のように隠された:

@Html.Hidden("CategoryIdHidden", model => model.Category.Id) 

とかを結合モデルとは別の投稿隠された値を処理する...私はそれを検証しないように、特定のモデルの検証は、特定のUIだと思う、とではありませんカテゴリID。

または、非表示のデフォルト値 "0"を入力します。 category.IDの型がint型の場合は、値 "" ""が正しく評価されないため、null、したがってエラーが発生します。

HTH。

関連する問題