2017-04-07 35 views
6

Próbuję użyć sprawdzania poprawności modelu w MVC .Net Core i nie można zastąpić tego domyślnego komunikatu o błędzie "Wartość" jest niepoprawna ".MVC .NET Sprawdzanie poprawności modelu podstawowego - wartość "" jest nieprawidłowa. Błąd

Teoretycznie możemy zastąpić nasz własny niestandardowy komunikat o błędzie, używając ErrorMessage Adnotacji w Modelu. Ale nie mogłem znaleźć sposobu, żeby to zadziałało.

moim modelu

[Required(ErrorMessage = "Date Required")] 
[DataType(DataType.Date, ErrorMessage = "Invalid Date Format")]     
[Display(Name = "Appointment Date")] 
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime AppointmentDate { get; set; } 

kładę inny ErrorMessage zarówno Required i DataType tagu, jak pokazano wyżej.

Mój pogląd html

<div class="col-md-2"> 
     <input class="form-control" asp-for="AppointmentDate"> 
     <span asp-validation-for="AppointmentDate" class="text-danger"></span> 
    </div> 

enter image description here

mógłbyś mi pomóc jak mogę dostać ten komunikat o błędzie wymieniony? Dzięki.

+0

czy [sprawdź to] (http://stackoverflow.com/questions/1538873/how-to-replace-the-default-modelstate-error-message-in-asp-net-mvc-2)? To może być to, czego szukasz – TheUknown

+0

Dzięki, ale nie tego. Ma zastąpić komunikat o błędzie w innym języku, np. Hiszpańskim lub włoskim, itp. – TTCG

Odpowiedz

7

W celu dokonania swój atrybut Required prace trzeba wykonać pustych pól:

public DateTime? AppointmentDate { get; set; } 

Edycja: również pamiętać, że atrybut DataType faktycznie nie wykonuje walidacji na polu. MVC datę walidacji przy zastosowaniu wiązania z post danych model

+0

Otrzymuję ten sam problem, jednak jedyne pola, które mam "[Wymagane]" są ciągami. I mam tę samą akcję kontrolera, zarówno dla dodawania, jak i edycji jednostki. Podczas edycji działa dobrze (zanim zrobię cokolwiek w kontrolerze, sprawdzam 'ModelState'), ale wyskakuje podczas dodawania nowego obiektu. Wszystko jest dokładnie takie samo w istocie –

0

Mój problem to, że w akcji Tworzenie, chciałbym wrócić widok bez newing się podmiotem, który, kiedy zmieniły się że, tj Return View(new MyEntity()); to Naprawiono problem