简体   繁体   English

必需属性在 ASP.NET 中不起作用

[英]Required attribute not working in ASP.NET

I have created this C# file to be scaffolded in ASP.NET 5.0.我创建了这个 C# 文件以在 ASP.NET 5.0 中搭建。 The problem is I do not want the home number to be required yet the generated page (controller with Entity Framework) Create still counts it as such.问题是我不希望需要家庭号码,但生成的页面(带有实体框架的控制器)仍然如此计算。 Any idea why id this happening?知道为什么会发生这种情况吗?

public class Patient
    {
        [Key]
        public string MRN { get; set; }
        [Required]
        public string FirstName { get; set; }
        [Required]
        public string MiddleName { get; set; }
        [Required]
        public string LastName { get; set; }
        [Required]
        public string Address { get; set; }
        [Required]
        public string Gender { get; set; }
        [Required]
        [Display(Name = "Mobile Number")]
        public int MobNumber { get; set; }       
        [Display(Name = "Home Number")]
        public int HomeNumber { get; set; }      
        [Required]
        public string Nationality { get; set; }
            

    }

Here is the code for Create.cshtml , the weird thing that it used to work, now every time I try to generate the controller along with the views, the Home Number is required.这是Create.cshtml的代码,它曾经可以正常工作,现在每次我尝试生成 controller 以及视图时,都需要家庭编号。

@{
    ViewData["Title"] = "Create";
}

<h1>Create</h1>

<h4>Patient</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="MRN" class="control-label"></label>
                <input asp-for="MRN" class="form-control" />
                <span asp-validation-for="MRN" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="FirstName" class="control-label"></label>
                <input asp-for="FirstName" class="form-control" />
                <span asp-validation-for="FirstName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="MiddleName" class="control-label"></label>
                <input asp-for="MiddleName" class="form-control" />
                <span asp-validation-for="MiddleName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="LastName" class="control-label"></label>
                <input asp-for="LastName" class="form-control" />
                <span asp-validation-for="LastName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Address" class="control-label"></label>
                <input asp-for="Address" class="form-control" />
                <span asp-validation-for="Address" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Gender" class="control-label"></label>
                <input asp-for="Gender" class="form-control" />
                <span asp-validation-for="Gender" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="MobNumber" class="control-label"></label>
                <input asp-for="MobNumber" class="form-control" />
                <span asp-validation-for="MobNumber" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="HomeNumber" class="control-label"></label>
                <input asp-for="HomeNumber" class="form-control" />
                <span asp-validation-for="HomeNumber" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Nationality" class="control-label"></label>
                <input asp-for="Nationality" class="form-control" />
                <span asp-validation-for="Nationality" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>

<div>
    <a asp-action="Index">Back to List</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

If you don't want values to be required, you should make them nullable:如果您不希望需要值,则应使它们可为空:

[Display(Name = "Home Number")]
public int? HomeNumber { get; set; }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM