Campos Required
A propriedade required, é um booleano usado para indicar que o preenchimento de um determinando campo de um formulário é obrigatório para o envio do mesmo.
Esta propriedade funciona com os seguintes tipos de input: text, search, url, tel, email, password, date, datetime, number e checkbox.
Os campos do tipo email e telefone têm validações do lado do cliente, e apenas é submetido o valor para o servidor quando estão no formato correto. Ou seja, se estes campos tiverem um valor inválido, o formulário não vai poder ser submetido até que esse erro seja corrigido.
Modelo de Entidades
No modelo de entidades, é possível definir que determinado atributo é required, acedendo à propriedades do campo e colocando o booleano required = true. Ao adicionar esta propriedade, o atributo passa a ser obrigatório no repositório de dados.
Modelo de Apresentação
No modelo de apresentação é possível fazer a validação do campo required do lado do cliente (browser). Para tal, deve ser selecionada a view pretendida, clicar com o botão direito do rato na mesma e selecionar a opção Views (Editor) > Edit Layout.
Após selecionar o campo pretendido, é possível ativar/desativar a propriedade required.
Utilizamos esta propriedade para informar o browser que um elemento do formulário é de preenchimento obrigatório, ou seja, o user não consegue enviar o formulário se não preencher o campo com o atributo required.
Quando a opção required está ativa, o campo apresenta um border laranja que marca visualmente o campo como obrigatório. Adicionalmente, o botão save fica bloqueado até que o campo obrigatório seja preenchido.
Modelo de Serviços
Neste modelo, é possível aceder às propriedades de um parâmetro e definir a propriedade required. Quando o required está a true passa a ser obrigatório o preenchimento do parâmetro no pedido. Quando está marcado a false, é passado o parâmetro por query string e o mesmo não é obrigatório.
Service Operation
ServiceOperationParameter.Required
- Indica que o parâmetro é obrigatório
- O valor por omissão é false.
- Caso seja marcado como obrigatório:
- O atributo do DefaultValue deixará de estar disponível.
- Os parâmetros passam a fazer parte da rota (como querystring)
- Parâmetros dos tipos Date, Datetime, Time, ResourceModel ou marcado como collection não podem ser obrigatórios, pelo que este atributo não se encontrará disponível.
ResourceModel
NormalAttributeReference.IsRequired
- No caso de um atributo Custom, define se o mesmo é ou não obrigatório.
- Este atributo apenas se encontra disponível para atributos Custom
- O valor por omissão é false.
Geração de código
Quando um atributo usado numa resource está marcado no modelo de entidades como “Required”, é gerado na definição do ResourceModel (Services.Entities.cs) no projeto Services.Entities código idêntico a este:
[Required(ErrorMessageResourceName = "RES_FieldIsRequired", ErrorMessageResourceType = typeof([Company].[Module].Resources.Resources))]