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; }