![](/img/trans.png)
[英]Display Custom Errors in Html.ValidationMessageFor via jQuery
[英]Use @Html.ValidationMessageFor or other validation (custom messages) on pure html elements in MVC
因为我使用了一个名为select2的插件,所以我需要在应用程序中以纯HTML格式定义选择列表(因此没有任何帮助程序),如下所示:
<select name="TopicIds" id="topDrop" multiple style="width: 700px" required>
@foreach (var top in ((List<Topic>)ViewBag.TopIds).Where(top => top.MainTopic == null))
{
<option value="@top.TopicId" class="optionGroup">@top.Name</option>
foreach (var subTopic in top.SubTopics)
{
<option value="@subTopic.TopicId" class="optionChild">@subTopic.Name</option>
}
}
</select>
如您所见,需要选择1个元素,这就是为什么我设置“ required”属性的原因。
验证发生,当表单提交时,列表中未选择任何内容时,验证不会通过。 我想设置一个自定义错误消息,但是在对该字段进行验证时。
通常,您将使用辅助程序@html.ValidationMessageFor()
,但是似乎无法使用此纯html控件。 您可以在我的ViewModel中看到选择列表绑定到属性“ TopicIds”。
我尝试了这个: @Html.ValidationMessageFor(model => model.TopicIds)
,我收到的唯一消息是默认的“此字段是必需的”,只有在定义了此帮助程序时,这才足够奇怪...
如何自定义此消息? 我已经进行了一段时间的搜索,并尝试了使用JavaScript之类的各种解决方案,但是似乎没有任何改变的消息,我总是得到“此字段为必填”。
有人知道怎么做吗? 我正在ASP.NET MVC 4 Web应用程序中使用所有这些。
在ViewModel中注释属性
[Required(ErrorMessage = "My Custom Message")]
public string Id {get;set;}
然后你Html.ValidationMessageFor
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.