asp.net-mvc – 如何添加“必需”属性到mvc 5剃刀视图文本输入编辑器

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何添加“必需”属性到mvc 5剃刀视图文本输入编辑器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下MVC 5 Razor HTML助手: @H_502_2@@Html.TextBoxFor(m => m.ShortName,new { @class = "form-control",@placeholder = "short name"})

我需要这个字段是必需的(即当用户导航而不放置价值旅馆时,有一个红色的轮廓)。在WebForms HTML 5中,我只能说< input type =“text”required />有这个效果
使用Razor语法完成此功能的正确语法是什么?

解决方法

如果需要,您可以使用所需的html属性: @H_502_2@@Html.TextBoxFor(m => m.ShortName,placeholder = "short name",required="required"})

或者您可以使用.Net中的RequiredAttribute类。使用jQuery,requiredAttribute可以在前端和服务器端进行验证。如果你想去MVC路线,我建议你阅读Data annotations MVC3 Required attribute

要么

你可以得到真正的进步:

@H_502_2@@{ // if you aren't using UnobtrusiveValidation,don't pass anything to this constructor var attributes = new Dictionary<string,object>( Html.GetUnobtrusiveValidationAttributes(ViewData.TemplateInfo.HtmlFieldPrefix)); attributes.Add("class","form-control"); attributes.Add("placeholder","short name"); if (ViewData.ModelMetadata.ContainerType .GetProperty(ViewData.ModelMetadata.PropertyName) .GetCustomAttributes(typeof(requiredAttribute),true) .Select(a => a as requiredAttribute) .Any(a => a != null)) { attributes.Add("required","required"); } @Html.TextBoxFor(m => m.ShortName,attributes) }

或者如果您需要多个编辑器模板:

@H_502_2@public static class ViewPageExtensions { public static IDictionary<string,object> GetAttributes(this ViewWebPage instance) { // if you aren't using UnobtrusiveValidation,don't pass anything to this constructor var attributes = new Dictionary<string,object>( instance.Html.GetUnobtrusiveValidationAttributes( instance.ViewData.TemplateInfo.HtmlFieldPrefix)); if (ViewData.ModelMetadata.ContainerType .GetProperty(ViewData.ModelMetadata.PropertyName) .GetCustomAttributes(typeof(requiredAttribute),true) .Select(a => a as requiredAttribute) .Any(a => a != null)) { attributes.Add("required","required"); } } }

那么在你的模板中

@H_502_2@@{ // if you aren't using UnobtrusiveValidation,don't pass anything to this constructor var attributes = this.GetAttributes(); attributes.Add("class","form-control"); attributes.Add("placeholder","short name"); @Html.TextBoxFor(m => m.ShortName,attributes) }

猜你在找的asp.Net相关文章