데이터를 입력 할 양식을 만든 ASP.NET 코어 2.0 응용 프로그램에서 작업하고 있습니다. 유효성 검사가 작동하는지 확인하는 동안 내 뷰 모델의 필수 속성에 대한 유효성 검사 메시지가 표시되지 않는 것으로 나타났습니다.부분보기를 사용하는 동안 asp.net 코어 2.0 양식 유효성 검사 메시지가 표시되지 않음
필요한 입력이 비어 있고 저장을 누르면 계속할 수 없으므로 입력이 필요하지만 표시 할 메시지가 없습니다.
폼의 일부를 동적으로 변경해야하기 때문에 내 폼보기의보기 모델에 속성으로보기 모델 목록이 있습니다.
내 기본보기 모델이되어
@model SettingsViewModel
<form asp-action="Create" id="SettingsForm">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-md-12">
<label asp-for="@Model.KeyValuePairs[0].Key" class="control-label col-md-3 no-left-padding"></label>
<label asp-for="@Model.KeyValuePairs[0].Value" class="control-label col-md-offset-1 no-left-padding"></label>
</div>
</div>
@for (var i = 0; i < Model.KeyValuePairs.Count; i++)
{
var keyValuePair = Model.KeyValuePairs[i];
keyValuePair.Id = i;
<div id="KeyValuePairsContainer">
@Html.Partial("_settingKeyValue", keyValuePair)
</div>
}
<div class="form-group col-md-12 no-left-padding">
<label asp-for="Description" class="control-label"></label>
<textarea asp-for="Description" class="form-control" ></textarea>
<span asp-validation-for="Description" class="text-danger"></span>
</div>
<div class="form-group col-md-12 no-left-padding">
<input type="submit" value="Opslaan" class="btn btn-primary" id="Submit" />
<a href="@Url.Action("Index", "Home")" class="btn btn-default" id="Cancel">Annuleren</a>
</div>
</form>
그리고 여기에 렌더링됩니다 부분보기 : 여기
public class SettingsViewModel
{
public List<KeyValueViewModel> KeyValuePairs { get; set; }
public string Description { get; set; }
}
여기
public class KeyValueViewModel
{
public int Id { get; set; }
[Display(Name = "Key")]
[Required(ErrorMessage = "Key is required")]
public string Key { get; set; }
[Display(Name = "Value")]
[Required(ErrorMessage = "Value is required")]
public string Value { get; set; }
public Guid SettingFileId { get; set; }
public Dictionary<Guid, string> SettingFileDropdownOptions { get; set; }
}
기본보기입니다 KeyValueViewModel입니다 :
@model KeyValueViewModel
<div class="form-group col-md-4 no-left-padding">
<input asp-for="@Model.Key" class="form-control col-md-3" id="[email protected]" name="KeyValuePairs[@Model.Id].Key" required="required"/>
<span asp-validation-for="@Model.Key" class="text-danger"></span>
</div>
<div class="form-group col-md-4 no-left-padding">
<input asp-for="@Model.Value" class="form-control col-md-3" id="[email protected]" name="KeyValuePairs[@Model.Id].Value" required="required" />
<span asp-validation-for="@Model.Value" class="text-danger"></span>
</div>
키 및 값 등록 정보의 유효성 검증 메시지가 필요할 때 표시되지 않습니다. 우리는 메시지와 함께 필요한 태그를 추가하여 SettingsViewModel의 Description 속성을 테스트했습니다.
기본보기에 표시되는 KeyValueViewModel의 유효성 확인 메시지를 얻으려면 어떻게해야합니까?
편집
<span class="text-danger field-validation-valid" data-valmsg-for="Key" data-valmsg-replace="true"></span>
가해야 할 때 클래스 = "현장 검증 오류"에 업데이트되지 않습니다
이어야합니다. 부분 뷰 내부에'jquery.validate.js'를 포함 시키려고 했습니까? 내 기본보기에서 – Manoj
나는 표준 @section 스크립트가 {@ 을 {Html.RenderPartialAsync ("_ ValidationScriptsPartial") 기다리고;} }는 jquery.valide.js 라이브러리 – Jeroen
이 부분보기 아무튼에 동일한 코드를 추가 포함 코드를 두 번 같은 라이브러리를 추가하기 때문에 작동하지 않는다고 생각합니다. – Jeroen