select 요소에서 클라이언트 측 유효성 검사를 사용하려고하지만 양식이 처음로드 될 때 작동하지 않습니다. 선택 요소 클라이언트 측 유효성 검사가 게시 이후에만 나타납니다.
이
(이 내 모델 내부 클래스 내에 실제로) 내 모델의 속성입니다 :[Required(ErrorMessage="Please select an application type.")]
public override string Application
{
get
{
return base.Application;
}
set
{
base.Application = value;
}
}
이 뷰의 일부입니다
<div class="field_title">
Application Type
</div>
<div class="field_validation">
@Html.ValidationMessageFor(model => model.CreatePromocode.Application)
</div>
<div class="form_field">
@Html.DropDownListFor(model => model.CreatePromocode.Application,
SharedLibrary.Entities.DropDownLists.PromocodeApplicationOptions,
"Select an application type...")
</div>
이 드롭 다운리스트 항목 코드 이 방법으로 다른 응용 프로그램에서 사용할 수 있으므로 여러 개가 아닌 한 곳에서 변경할 수 있습니다.
public class DropDownLists
{
public static List<SelectListItem> PromocodeApplicationOptions
{
get
{
return new List<SelectListItem>()
{
new SelectListItem() {
Text="Earlybird Registration", Value="Earlybird"},
new SelectListItem() {
Text="Standard Registration", Value="Standard"},
new SelectListItem() {
Text="Monday Registration", Value="Monday"},
new SelectListItem() {
Text="Tuesday Registration", Value="Tuesday"},
new SelectListItem() {
Text="Wednesday Registration", Value="Wednesday"},
new SelectListItem() {
Text="Multiple Tickets", Value="TicketMany"},
new SelectListItem() {
Text="Single Ticket",Value="TicketSingle"}
};
}
}
}
내가 겪고있는 문제는 사용자가 처음 페이지에 도착하면 드롭 다운 목록에 클라이언트 측 유효성 검사 속성이 없다는 것입니다. 양식 그러나 게시되면 그것은이
<select id="CreatePromocode_Application" name="CreatePromocode.Application">
처럼 보이는, 그리고 ModelState 응용 프로그램 유형이 선택되지 않았기 때문에, 클라이언트 검증 한 다음 드롭 다운 목록에 표시하고 잘 작동 유효하지 않습니다.
<select data-val="true"
data-val-required="Please select an application type."
id="CreatePromocode_Application"
name="CreatePromocode.Application"
class="valid">
어떻게 처음부터 클라이언트 측 유효성 검사를 수행 할 수 있습니까? 데이터 주석을 사용하는 목적을 상쇄하기 때문에 필요한 속성과 오류 메시지를 직접 추가하지 않아도됩니다.
드롭 다운 목록 또는 다른 모델 속성에서도 이와 같은 현상이 발생합니까? – HTX9
드롭 다운 목록에서만 다른 속성 (텍스트 상자)은 모두 클라이언트 쪽 유효성 검사를 처음으로합니다. –