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

时间:2014-04-17 23:32:12

标签: javascript jquery html asp.net-mvc validation

因为我使用了一个名为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个元素,这就是我设置&#34; required&#34;属性。

验证发生时,表单提交时未在列表中选择任何内容时进行验证。我想在字段验证发生时设置自定义错误消息。

通常你会使用帮助器@html.ValidationMessageFor(),但似乎并没有使用这个纯粹的html控件。您可以看到选择列表绑定到属性&#34; TopicIds&#34;在我的ViewModel中。

我试过这个:@Html.ValidationMessageFor(model => model.TopicIds),我得到的唯一消息是默认&#34;这个字段是必需的&#34;,奇怪的是只有在定义了这个帮助时...

如何自定义此讯息?我已经搜索了一段时间并尝试使用JavaScript等各种解决方案,但似乎没有任何改变消息,我总是得到&#34;这个字段是必需的。&#34;。

任何人都知道如何做到这一点?我在ASP.NET MVC 4 Web应用程序中使用了所有这些。

1 个答案:

答案 0 :(得分:0)

在ViewModel中注释属性

[Required(ErrorMessage = "My Custom Message")]
public string Id {get;set;}

然后你Html.ValidationMessageFor