0

ApplicantProfileModelあらゆる点で機能するビューモデルがあります。プロパティを宣言します

[HiddenInput(DisplayValue = false)]
public int Id { get; set; }

このプロパティは、このような部分ビューに存在します

@model Comair.RI.UI.Models.ApplicantProfileModel
@Html.ValidationSummary(true)
<fieldset>
    <legend></legend>
    <ul class="form-column">
        @Html.HiddenFor(m => m.Id)
    .....

このプロパティには、次の Fluent Validation ルールがあります。

RuleFor(p => p.Id).NotEmpty().WithMessage("Id is empty. Messsage may have been tampered with.");

ゼロのint値を持つ は、確かに「空」ではありません。ルールをゼロに等しくないように変更できることはわかっていますが、それでは問題が解決せず、int値の値0が流暢な検証によって空と見なされる理由に関する質問に答えませんか?

4

1 に答える 1

1

anintは値型であり、値を持つことはできないためです。ボンネットの下では、そのタイプをFluentValidationチェックします。nullable int にすることができれば、その動作を得ることができます。それ以外の場合は、あなたが提案したとおりに実行し、0 に等しくないことを確認します。defaultintId

于 2013-01-24T08:29:50.203 に答える