1

モデルプロパティがあります:

public int? RegionId { get; set; }

ビューでドロップダウンリストを作成します。

@Html.DropDownListFor(m => m.RegionId, Model.Regions)

HTMLの場合:

<select data-val="true" data-val-number="The field RegionId must be a number." 
</select>

特定のケースでは適切ではないため、属性data-val-numberを削除する必要があります。

Application_Startで試してみます:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

また、RegionIdはnull許容であることに注意してください。

サーバー側のコードでこの属性を削除するにはどうすればよいですか?(javascriptではありません)

4

2 に答える 2

6

リストにこのアイテムを追加する必要があります:

new SelectListItem {Text = SiteResources.NotSelected、Selected = true、 Value = "" } //(Value = nullではない)

そして、このアイテムはdata-val-numberに対して有効になります

Application_Startの別の方法:

ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new DataAnnotationsModelValidatorProvider());

ただし、すべての単純なタイプに対して暗黙的なDataAnnotation検証を無効にするようです。

于 2012-08-28T10:06:36.823 に答える
0

AlexCのコメントで述べたように、モデルで整数が必要な場合は、数値を渡す必要があります。ValidationForヘルパーを削除することで検証メッセージを取得することを回避できますが、タイプが一致しなくなるまで、 Model.IsValidはtrueになりません。null値をコントロールにバインドする場合は、それを実行でき、Model.Regionsは次のようになります。

"--Please Select--", Value: null
"US", Value:"1",
"Asia", Value:"2"
于 2012-08-28T10:09:08.693 に答える