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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top