Asp.net 在视图中禁用某些[必需]字段验证器
ASP.NET MVC核心,如果这有什么区别的话 在某些情况下,是否有一种简单的方法来禁用模型或视图中的某些字段验证器 web上的大多数信息看起来都来自ASP.NET表单时代。 我找不到太多的东西来尝试,但是,这似乎不起作用Asp.net 在视图中禁用某些[必需]字段验证器,asp.net,asp.net-mvc,validation,data-annotations,asp.net-core-mvc,Asp.net,Asp.net Mvc,Validation,Data Annotations,Asp.net Core Mvc,ASP.NET MVC核心,如果这有什么区别的话 在某些情况下,是否有一种简单的方法来禁用模型或视图中的某些字段验证器 web上的大多数信息看起来都来自ASP.NET表单时代。 我找不到太多的东西来尝试,但是,这似乎不起作用 <label asp-for="Files.PromoImage" class="col-md-2 control-label"></label> <div class="col-md-10"> <input asp-for
<label asp-for="Files.PromoImage" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Files.PromoImage" class="form-control" />
@if (Model.Content.NewArticle)
{
<span asp-validation-for="Files.PromoImage" class="text-danger"></span>
}
</div>
<div class="col-md-8">
<div asp-validation-summary="ValidationSummary.All" class="text-danger"></div>
</div>
@if(Model.Content.NewArticle)
{
}
如果PromoImage
属性标记有[required]
属性,则将生成验证范围和所需数据
属性。您可以在浏览器中检查生成的html
实现所需功能的最简单方法是删除模型中的[Required]
属性,并在视图中显示如下内容:
@if (Model.Content.NewArticle)
{
<input class="form-control" data-val="true"
data-val-required="The PromoImage field is required." name="Files.PromoImage"
placeholder="Promo Image" type="text" value="">
}
else
{
<input asp-for="Files.PromoImage" class="form-control"/>
}
@if(Model.Content.NewArticle)
{
}
其他的
{
}
然后在服务器上,在post-action方法中,必须手动验证PromoImage
属性
不那么简单但更优雅的方法是使用您自己的验证属性和jQuery验证器扩展MVC和jQuery验证,例如
[RequiredIf]
。ASP.NET Core 1.0中的API略有不同,但这里有一个示例:如何生成相应的输入?请记住,使用新的“asp for”标记帮助器(例如,
)也将自动生成验证范围,并将数据要求属性附加到输入中。添加了相应代码的其余部分