繁体   English   中英

在MVC中的纯HTML元素上使用@ Html.ValidationMessageFor或其他验证(自定义消息)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM