ASP.NET MVC必需字段指示符

Ben*_*nny 8 asp.net-mvc asp.net-mvc-2

对于我的ASP.NET MVC视图中已根据需要进行归因的字段,框架是否有任何方法可以自动呈现某种指示符,表明字段在元数据中被标记为必需?

Fra*_*han 14

应该可以用CSS做到这一点,因为MVC3将这些自定义属性添加到元素:

 <input data-val="true" data-val-required="The Username field is required." id="Username" name="Username" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

您可以像这样关闭CSS中所需的数据值:

输入[data-val-required] {background:red}或设置星号的背景图像等.


小智 13

我这样做是因为我的必填字段必须是动态的(在配置文件中定义)

在视图的末尾添加:

    <script type="text/javascript">
        $('input[type=text]').each(function () {
            var req = $(this).attr('data-val-required');
            if (undefined != req) {
                var label = $('label[for="' + $(this).attr('id') + '"]');
                var text = label.text();
                if (text.length > 0) {
                    label.append('<span style="color:red"> *</span>');
                }
            }
        });
    </script>
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 5

我修改了Renato Saito的答案,以包括更多字段类型(所有类型的输入和选择列表),并使用jQuery名称空间而不是通用$。这是我的修订:

<script type="text/javascript">
// add indicator to required fields
jQuery('input,select').each(function () {
    var req = jQuery(this).attr('data-val-required');
    if (undefined != req) {
        var label = jQuery('label[for="' + jQuery(this).attr('id') + '"]');
        var text = label.text();
        if (text.length > 0) {
            label.append('<span style="color:red"> *</span>');
        }
    }
});
</script>
Run Code Online (Sandbox Code Playgroud)