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))]