我在表单中有一个文本框,我想添加一些验证.
如何在不使用模型的情况下为其添加一些不显眼的验证属性?
例如.
@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); } } } }