MVC 데이터 주석 - 필수 필드가 작동하지 않습니다
-
06-07-2019 - |
문제
안녕하세요 저는 앱 전체에 다음 대구를 가지고 있지만 두 개의 필드만으로 작동하지 않습니다.
[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
프로젝트의 조립. 보다 이 튜토리얼 자세한 사항은.
제휴하지 않습니다 StackOverflow