MVC Model特性

moonwrite 2013-04-26 05:46:18
[Required]
[Display(Name="用户名")]
[StringLength(20,ErrorMessage="用户名在5到20之间",MinimumLength=5)]
[Tips("5-25个字符,推荐使用中文名")]//有没有这个特性
public string Username { get; set; }

有没有一个特性在 文本框获取焦点的时候就提示
5-25个字符,推荐使用中文名
配合MVC自带的jquery.validate.js
...全文
190 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
吾非大神 2013-04-27
  • 打赏
  • 举报
回复
是不是得 后台加特性,然后validate里也得加代码呀 关注...
moonwrite 2013-04-27
  • 打赏
  • 举报
回复
怎么写呢~ 这个是只js的么~ 但在mvc添加特性 才会生成响应的html
moonwrite 2013-04-27
  • 打赏
  • 举报
回复
自己搞了2~3个小时~ 送上资料和代码
public class TipAttribute : ValidationAttribute, IClientValidatable
    {
        private string _tip = string.Empty;
        public TipAttribute(string tip)
        {
            _tip = tip;
        }
        public override bool IsValid(object value)
        {
            return true;
        }

        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            ModelClientValidationRule validationRule = new ModelClientValidationRule() 
            { ValidationType = "tip", ErrorMessage = _tip };
            yield return validationRule;
        }
    }
onfocusin: function (element, event) {
                this.lastActive = element;

                var tip = $(element).attr("data-val-tip");
                var $span = $("span[data-valmsg-for='" + element.id + "']");
                $span.attr("class", "field-validation-tip");
                $span.text(tip);

                // hide error label and remove error class on focus if enabled
                //                if (this.settings.focusCleanup && !this.blockFocusCleanup) {
                //                    this.settings.unhighlight && this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass);
                //                    this.addWrapper(this.errorsFor(element)).hide();
                //                }
            },

highlight: function (element, errorClass, validClass) {
                var $span = $("span[data-valmsg-for='" + element.id + "']");
                $span.removeClass("field-validation-tip");

                if (element.type === 'radio') {
                    this.findByName(element.name).addClass(errorClass).removeClass(validClass);
                } else {
                    $(element).addClass(errorClass).removeClass(validClass);
                }
                
            },
            unhighlight: function (element, errorClass, validClass) {
                var $span = $("span[data-valmsg-for='" + element.id + "']");
                $span.removeClass("field-validation-tip");

                if (element.type === 'radio') {
                    this.findByName(element.name).removeClass(errorClass).addClass(validClass);
                } else {
                    $(element).removeClass(errorClass).addClass(validClass);
                }
                
            }
笨笨熊三号 2013-04-26
  • 打赏
  • 举报
回复
冒似没有,在validate里面自已写一个呗
threenewbee 2013-04-26
  • 打赏
  • 举报
回复
默认的没有这个功能,不过你可以自己做一个。

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧