문제

안녕하세요 저는 앱 전체에 다음 대구를 가지고 있지만 두 개의 필드만으로 작동하지 않습니다.

[Required]        
public string DevelopmentPM { get; set; }

다음 테스트가 실행되고 패스됩니다.

    [TestMethod]
    public void SiteConstruction_MODEL_DevelopmentPM_Is_Required()
    {
        //arrange
        var propertyInfo = typeof(SiteConstructionMetadata).GetProperty    
                           ("DevelopmentPM");

        //act
        var attribute = propertyInfo.GetCustomAttributes(typeof(RequiredAttribute), 
                        true).Cast<RequiredAttribute>().FirstOrDefault();

        //assert
        Assert.IsNotNull(attribute);
    }

내 Controller는 다음과 같습니다.

        TryUpdateModel(siteConstruction);

        if (!ModelState.IsValid)
           return View(siteConstruction);

모델에는 다른 필수 필드가 있으며 괜찮습니다. 이 필드는 NULL (확인)이지만 모델을 유효하지 않으므로 저장에 대한 검증과 오류가 없습니다.

내 견해

    <li>
        <label for="DevelopmentPM">
            <strong>Development PM:</strong></label>
        <%= Html.TextBox("DevelopmentPM") %>
        <%= Html.ValidationMessage("DevelopmentPM", "*") %>
    </li>

나는 .dbml (linq에서 sql)을 보았고, 철자는 괜찮아 보인다.

나는 단순한 것을 놓치고있다 - 제발, 화가 나.

감사

데이비

도움이 되었습니까?

해결책

metadatatype (typeof (siteconstructionmetadata))] 부분 클래스 위에서, 나는 그것을 가지고 있다고 당연한 것으로 생각했습니다.

다음에, 스 니펫을 게시하는 대신, 나는 그것을 모두 게시 할 것이라고 생각합니다.

데이비

다른 팁

당신이 만들도록하십시오 DataAnnotationsModelBinder 기본 모델 바인더도 있습니다. 다음을 추가하십시오 Global.asax.cs:

ModelBinders.Binders.DefaultBinder = new Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder();

그리고 당신이 참조했는지 확인하십시오 System.ComponentModel.DataAnnotations.dll 프로젝트의 조립. 보다 이 튜토리얼 자세한 사항은.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top