我有一个观点
@using (@Html.BeginForm())
{
<div class="form-horizontal">
<h4>Person</h4>
<hr/>
@Html.ValidationSummary(true)
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
@Html.HiddenFor(x => x.PersonId)
</div>
<div class="form-group">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
</div>
<div class="form-group">
@Html.LabelFor(m => m.Gender)
@Html.DropDownListFor(m => m.Gender, Html.GetEnumSelectList(typeof(Gender)))
@Html.ValidationMessageFor(m => m.Gender)
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default"/>
</div>
</div>
</div>
}
和ViewModel
public class Person
{
[HiddenInput]
public int PersonId { get; set; }
[Required]
public string Name { get; set; }
public Gender Gender { get; set; }
}
public enum Gender
{
Male,
Female
}
问题是关于PersonId为null的验证投诉。 它在浏览器中呈现(参见,值为空,但应为零)。
<div class="form-group">
<input data-val="true" data-val-required="The PersonId field is required." id="PersonId" name="PersonId" value="" type="hidden">
</div>
你可以帮忙吗?我使用的是ASP.NET Core 1.8 RC2