Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ModelState.IsValid一直返回为false?_C#_Asp.net Mvc_Entity Framework_Validation - Fatal编程技术网

C# ModelState.IsValid一直返回为false?

C# ModelState.IsValid一直返回为false?,c#,asp.net-mvc,entity-framework,validation,C#,Asp.net Mvc,Entity Framework,Validation,因此,我有一个视图,其中一个成员输入与他们相关联的PIN以打卡 @model Models.Member @{ Layout = "~/Views/Shared/_HomeLayout.cshtml"; } <h1 style="margin-top: 0px;">Club Members Login Below!</h1> @*add this to the style for better ipad title -> "text-align: cent

因此,我有一个视图,其中一个成员输入与他们相关联的PIN以打卡

@model Models.Member
@{
    Layout = "~/Views/Shared/_HomeLayout.cshtml";
}

<h1 style="margin-top: 0px;">Club Members Login Below!</h1> @*add this to the style for better ipad title -> "text-align: center;"*@
</br>
@using (Html.BeginForm("ClubHours", "Login", FormMethod.Post))
{
    @Html.LabelFor(c => c.PIN)
    @Html.TextBoxFor(c => c.PIN)<br />
    @Html.ValidationMessageFor(c => c.PIN)<br />

    <input type="submit" name="submit" value="ClockIn" />
    <input type="submit" name="submit" value="ClockOut" />
}
最后是成员类

public class Member
{
    public int Id { get; set; }
    [Required]
    [MaxLength(4, ErrorMessage = "PIN must be 4 numbers long"), MinLength(4, ErrorMessage = "PIN must be 4 numbers long")]
    public string PIN { get; set; }
    [Required]
    [Display(Name ="First Name")]
    public string FirstName { get; set; }
    [Required]
    [Display(Name = "Last Name")]
    public string LastName { get; set; }
    [Display(Name = "Date of Birth")]
    public DateTime? Birthdate { get; set; }
    public virtual ICollection<MemberClubHours> Hours { get; } = new HashSet<MemberClubHours>();
}

该代码工作正常,将跟踪成员的工作时间,但我正在尝试实施验证,但即使我输入了与系统中的成员关联的PIN,它也会返回为无效?任何帮助都将不胜感激

您正在验证从前端发送的模型。不是数据库,您确定模型是根据模型中的数据注释填充的吗


查看它是asp.net core 3.1,但仍然相关

您正在验证从前端发送的模型。不是数据库,您确定模型是根据模型中的数据注释填充的吗


查看它的asp.net core 3.1,但仍然相关

由于成员模型需要Id、PIN、FirstName、LastName字段,因此成员模型显示为无效

您无法使用
ModelState.IsValid验证此类,因为它将检查所有属性--,并且看起来您只传递PIN属性。

如果不想为其创建viewModel,可以将这些属性作为隐藏的inputfields包含在内

@using (Html.BeginForm("ClubHours", "Login", FormMethod.Post))
{
    @Html.HiddenFor(c=>c.Id)
    @Html.HiddenFor(c=>c.FirstName)
    @Html.HiddenFor(c=>c.LastName)

    @Html.LabelFor(c => c.PIN)
    @Html.TextBoxFor(c => c.PIN)<br />
    @Html.ValidationMessageFor(c => c.PIN)<br />

    <input type="submit" name="submit" value="ClockIn" />
    <input type="submit" name="submit" value="ClockOut" />
}
@使用(Html.beginfour(“ClubHours”,“Login”,FormMethod.Post))
{
@HiddenFor(c=>c.Id)
@Html.HiddenFor(c=>c.FirstName)
@Html.HiddenFor(c=>c.LastName)
@LabelFor(c=>c.PIN)
@Html.TextBoxFor(c=>c.PIN)
@Html.ValidationMessageFor(c=>c.PIN)
}
成员模型显示为无效,因为该成员模型需要Id、PIN、FirstName、LastName字段

您无法使用
ModelState.IsValid验证此类,因为它将检查所有属性--,并且看起来您只传递PIN属性。

如果不想为其创建viewModel,可以将这些属性作为隐藏的inputfields包含在内

@using (Html.BeginForm("ClubHours", "Login", FormMethod.Post))
{
    @Html.HiddenFor(c=>c.Id)
    @Html.HiddenFor(c=>c.FirstName)
    @Html.HiddenFor(c=>c.LastName)

    @Html.LabelFor(c => c.PIN)
    @Html.TextBoxFor(c => c.PIN)<br />
    @Html.ValidationMessageFor(c => c.PIN)<br />

    <input type="submit" name="submit" value="ClockIn" />
    <input type="submit" name="submit" value="ClockOut" />
}
@使用(Html.beginfour(“ClubHours”,“Login”,FormMethod.Post))
{
@HiddenFor(c=>c.Id)
@Html.HiddenFor(c=>c.FirstName)
@Html.HiddenFor(c=>c.LastName)
@LabelFor(c=>c.PIN)
@Html.TextBoxFor(c=>c.PIN)
@Html.ValidationMessageFor(c=>c.PIN)
}
Print
ValidationSummary
太多了。请参阅查找模型错误。也可以打印
ValidationSummary
太多了。请参阅查找模型错误。啊,啊,啊,啊!我早该知道的,谢谢!啊,对了!我早该知道的,谢谢!
@using (Html.BeginForm("ClubHours", "Login", FormMethod.Post))
{
    @Html.HiddenFor(c=>c.Id)
    @Html.HiddenFor(c=>c.FirstName)
    @Html.HiddenFor(c=>c.LastName)

    @Html.LabelFor(c => c.PIN)
    @Html.TextBoxFor(c => c.PIN)<br />
    @Html.ValidationMessageFor(c => c.PIN)<br />

    <input type="submit" name="submit" value="ClockIn" />
    <input type="submit" name="submit" value="ClockOut" />
}