加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在没有模型的情况下手动将验证添加到文本框

发布时间:2020-12-15 19:59:27 所属栏目:asp.Net 来源:网络整理
导读:我在表单中有一个文本框,我想添加一些验证. 如何在不使用模型的情况下为其添加一些不显眼的验证属性? 例如. @using (Html.BeginForm()) { @Html.ValidationSummary() @Html.Label("code","Confirmation Code") @Html.TextBox("code")!-- I want validation
我在表单中有一个文本框,我想添加一些验证.

如何在不使用模型的情况下为其添加一些不显眼的验证属性?

例如.

@using (Html.BeginForm())
    {
        @Html.ValidationSummary()
        @Html.Label("code","Confirmation Code") 
        @Html.TextBox("code")<!-- I want validation on this thing -->
        <input type="submit" value="Go" />
    }

如何使其成为必需品,以及其他如强度等.

解决方法

也许现在为时已晚,但我刚刚找到了解决方案.
var metaInfo = ViewData.ModelMetadata.Properties.First(data => data.PropertyName == "[Property name]");

Dictionary<string,object> attributes = new Dictionary<string,object>();

var validators = metaInfo.GetValidators(ViewContext.Controller.ControllerContext);
if(validators.Count() > 0)
{
    attributes.Add("data-val","true");
    foreach (var validator in validators)
    {
        foreach(var rule in validator.GetClientValidationRules())
        {
            attributes.Add(string.Format("data-val-{0}",rule.ValidationType),rule.ErrorMessage);
            foreach(var param in rule.ValidationParameters)
            {
                attributes.Add(string.Format("data-val-{0}-{1}",rule.ValidationType,param.Key),param.Value);
            }
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读