MVC自动完成validation
在我的MVC应用程序中,我有一个使用JQuery / AJAX自动完成的View,这是一个摘录;
@Html.HiddenFor(model => model.PrimaryTradeId) @Html.ValidationMessageFor(model => model.PrimaryTradeId, "*")
当用户选择一个项目进行自动完成时,我使用JQuery来填充隐藏字段; @Html.HiddenFor(model => model.PrimaryTradeId)
。
我的老板告诉我,如果用户在此字段中输入了一个值,但未从自动完成中选择,则当他点击该字段时,应立即显示错误消息。
我该如何实现?
您可以创建一个自定义validation属性,如下所示:
public class PrimaryTradeAttribute : ValidationAttribute { public override bool IsValid(object value) { if (value != null && value is int) { var unitOfWork = new UnitOfWork(); int primaryTradeId = (int)value; // Code to check if the PrimaryTradeId exists in the database... if (unitOfWork.PrimaryTradeRepository().Find(primaryTradeId) == null) { return false; } } return true; } }
然后,您可以在模型中使用此属性,如下所示:
[PrimaryTrade] public int PrimaryTradeId { get; set; }