ASP.NET MVC Core如果有任何区别
在某些情况下,是否有一种简单的方法可以禁用模型或视图中的某些字段验证器?
网络上的大多数信息都来自ASP.NET Forms时代。 我找不到太多可以尝试的东西但是,这看起来没有做到这一点。
{{1}}
答案 0 :(得分:1)
<input asp-for="Files.PromoImage"/>
属性标有data-required
属性, 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"/>
}
然后再次在服务器上,在post post方法中,您必须对PromoImage
属性进行手动验证。
不是那么简单但更优雅的方法是使用您自己的验证属性和jQuery验证器来扩展MVC和jQuery验证,例如: [RequiredIf]
。 ASP.NET Core 1.0中的API略有不同,但这里有一个示例:Custom validation