0
我已经简单的类代表型号为什么有些属性将isRequired设置为true?
public class Test{
[Required]
[DisplayName("Code")]
[RegularExpression(@"^[0-9A-Za-z ]+$", ErrorMessageResourceType = typeof(ErrorMessages), ErrorMessageResourceName = "GeneralShowModel_Code_Error")]
[MaxLength(25, ErrorMessageResourceType = typeof(ErrorMessages), ErrorMessageResourceName = "GeneralShowModel_Code_Length_Error")]
public string Code { get; set; }
[Range(0, Int16.MaxValue, ErrorMessageResourceType = typeof(ErrorMessages), ErrorMessageResourceName = "GeneralShowModel_MaxGuests_Error")]
[DisplayName("Max guests")]
public long MaxGuests { get; set; }
[DisplayName("Pre-registration is closed")]
public bool IsPreRegistrationClosed { get; set; }
[DisplayName("In test mode")]
public bool InTestMode { get; set; }
}
我创建简单的自定义HTML辅助渲染标签带班“必要”时,财产已必需属性
public static class CustomHelper
{
public static MvcHtmlString RequiredLabelFor<T, TU>(this HtmlHelper<T> helper,
Expression<Func<T, TU>> expression)
{
var metaData = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
var isRequired = metaData.IsRequired;
var htmlFieldName = ExpressionHelper.GetExpressionText(expression);
var label = new TagBuilder("label");
label.SetInnerText(metaData.DisplayName);
label.Attributes.Add("for", helper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName));
if (isRequired)
{
label.Attributes.Add("class", "required");
}
return MvcHtmlString.Create(label.ToString());
}
}
我以这种方式使用这个帮手
@Html.RequiredLabelFor(m => m.Code)
MaxGuests,IsPreRegistrationClosed等没有必需的属性,但metaData.IsRequired为true。如何解决这个障碍?
@Victor:试试这个试试吗? –
非常感谢这个解决方案。我们可以在不更改为可空类型的情况下执行此操作,只能通过检查现有的[必需的]属性? – BILL
@Victor:不是我所知道的。 –