1

정적이 아닌 데이터를 데이터 주석 속성에 추가 할 수있는 방법이 있습니까 (표준 속성 또는 표준 데이터 주석 (표시, 범위 , 등) 또는 속성 기본 클래스)? 나는 이런 식으로 뭔가 할 바라고 있어요 :데이터 주석에서 변수 또는 클래스 속성을 사용하는 방법

public class ReportingDateTime 
{ 
    public DateTime Field { get; set; } 

    private string FieldName; 

    public ReportingDateTime(string fieldName) 
    { 
     Field.metadata.DisplayName = "Test Date"; 
    } 
} 

내가했습니다 바로는 : 또는

public class ReportingDateTime 
{ 
    [Display(Name=this.FieldName)] 
    [Reporting.Core.CustomDisplay(this.FieldName)] 

    public DateTime Field { get; set; } 

    private string FieldName; 

    public ReportingDateTime(string fieldName) 
    { 
     this.FieldName = fieldName; 
    } 
} 

을과 같이 '클래스의 속성에 대한 생성자를 메타 데이터를 변경하는 방법은 무엇입니까 (사용자 정의 속성은 사용자 정의 객체의 새 인스턴스를 필요로합니다.)하지만 저는 주로 간단한 데이터 유형 (문자열, int, double)과 일반 콜렉션 (list, dictionary , etc.)

답변

0

내가 할 수있는 한, cu 이것을 비난하십시오.

@inherits System.Web.Mvc.WebViewPage<Reporting.Fields.ReportingNumber> 
<div class="editor-label"> 
    @Model.FieldName 
</div> 
<div class="editor-field"> 
    @if (Model.ReadOnly) 
    { 
     <div class="@Model.FieldSubType"> 
      @Model.Field 
     </div> 
    } 
    else 
    { 
     @Html.TextBox("Field", Model.Field, new { @class = @Model.FieldSubType, @title = @Model.ToolTip }) 
     @Html.ValidationMessageFor(model => model.Field) 
    } 

을 검증을 위해 내가 FluentValidation의 조건 유효성 검사를 사용하는 것이 좋습니다 것 (: 무엇 나를 위해 일하는 결국은 내가 지금처럼 디스플레이 속성에 대한 내 자신의 필드를 사용할 수 있도록 클래스에 대한 사용자 정의 편집기/디스플레이 템플릿을 가지고 있었다 http://fluentvalidation.codeplex.com/wikipage?title=Customising&referringTitle=Documentation&ANCHOR#WhenUnless) 클래스의 속성을 조건문으로 사용하십시오.

namespace Reporting.Validation 
{ 
    using FluentValidation; 
    using Reporting.Fields; 

    public class ReportingNumberValidation : AbstractValidator<ReportingNumber> 
    { 
     public ReportingNumberValidation() 
     { 
      RuleFor(m => m.Field).NotEmpty().WithMessage("*").When(m => m.Required); 
      RuleFor(m => m.Field).GreaterThanOrEqualTo(m => m.MinimumValue.Value).When(m => m.MinimumValue.HasValue); 
      RuleFor(m => m.Field).LessThanOrEqualTo(m => m.MaximumValue.Value).When(m => m.MaximumValue.HasValue); 
     } 
    } 
} 
관련 문제