ASP.在Html.ValidationMessageFor中.NET MVC排除数据注释属性
本文关键字:排除 数据 注释 属性 MVC NET Html ValidationMessageFor ASP | 更新日期: 2023-09-27 18:14:01
我使用EF-CF,并有以下实体:
国家,公司
公司有一个名为CountryId的属性,带有StringLength属性和最小和最大限制(最小3个字符,最大3个字符,国家id ISO-Alpha-3)。当用户需要创建Company时,我会显示一个包含所有可用国家的html元素。这太完美了!
但是,当我对表单执行jquery验证器时,它会检查3个选定选项,而不是选定选项的长度值。
我需要StringLengthAttribute在我的国家模型,我不能删除它。
我希望在调用中"删除"或"隐藏"StringLengthAttribute:
@Html。ValidationMessageFor(model => model. countryid)
谢谢!
Company
实体。这将允许您在不更改实体模型的情况下添加或删除数据注释。然后将数据从新的CompanyViewModel
映射到Company
实体模型并保存到数据库中。
例如,Company
实体可能看起来像这样:
public class Company
{
public int Id { get; set; }
[StringLength(25)]
public string Name { get; set; }
public int EmployeeAmount { get; set; }
[StringLength(3, MinimumLength = 3)]
public string CountryId {get; set; }
}
现在在MVC项目中,ViewModel可以像Company
实体一样构造:
public class CompanyViewModel
{
public int Id { get; set; }
[StringLength(25, ErrorMessage="Company name needs to be 25 characters or less!")]
public string Name { get; set; }
public int EmployeeAmount { get; set; }
public string CountryId { get; set; }
}
使用ViewModel意味着可以添加更多面向视图表示的注释,而不会重载带有不必要标记的实体。
我希望这对你有帮助!
准备好了!
删除html控件的规则。
$ (" # @ (Html。htmlnamefor (model => model. countryid))").rules("remove", " rangelth ");
"rangelength"是StringLengthAttribute的jquery验证规则。
,"Html。htmlnamefor "是一个获取ASP生成的"Id"的助手。净MVC。
查看如何获得由asp.net MVC EditorFor