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)
    .....

我对此属性有以下流利验证规则:

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

int值为零的An肯定不是“空的”。我知道我可以将规则更改为不等于零,但这并不能解决我的问题并回答我的问题,即为什么一个intof 值0被流畅的验证视为空?

4

1 回答 1

1

因为 anint是值类型,不能没有值。在引擎盖下FluentValidation检查default该类型,我相信 0 对于int. 如果您可以使您Id的 int 可以为空,您可以获得该行为。否则我会按照你的建议做并检查不等于0。

于 2013-01-24T08:29:50.203 回答