MVC Dados Anotação - Campo obrigatório não Trabalhando
-
06-07-2019 - |
Pergunta
Oi Eu tenho o seguinte bacalhau todo meu aplicativo, mas com apenas dois campos que não está funcionando.
[Required]
public string DevelopmentPM { get; set; }
As seguintes execuções de teste e passes:
[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);
}
As minhas controlller parece com:
TryUpdateModel(siteConstruction);
if (!ModelState.IsValid)
return View(siteConstruction);
Eu tenho outros campos obrigatórios em modelo e eles estão OK. Este campo é nulo (eu verifiquei), mas não faz o modelo inválido -. Por isso não validação e um erro ao salvar
My View
<li>
<label for="DevelopmentPM">
<strong>Development PM:</strong></label>
<%= Html.TextBox("DevelopmentPM") %>
<%= Html.ValidationMessage("DevelopmentPM", "*") %>
</li>
Eu olhei para o meu .dbml (LINQ to SQL), ortografia parece ok.
Estou me faltando algo simples -. Por favor, enlouquecendo
Graças
Davy
Solução
[MetadataType (typeof (SiteConstructionMetadata))] acima da minha classe parcial, eu tinha como certo que eu tinha lá.
Da próxima vez, em vez de postar trechos, eu acho que vou postar tudo -. Smeone wous ter visto que muito rapidamente
Davy
Outras dicas
Certifique-se de fazer a DataAnnotationsModelBinder
o fichário de modelo padrão também. Adicione o seguinte em seu Global.asax.cs
:
ModelBinders.Binders.DefaultBinder = new Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder();
e certifique-se que você tem referenciado o System.ComponentModel.DataAnnotations.dll
montagem em seu projeto. Consulte este tutorial para mais detalhes.