segunda-feira, 8 de maio de 2017

Para que é usado Bind(“Propriedade”)?

Ao criarmos um CRUD com scalfold no Asp.net MVC, nos métodos de POST, temos o seguinte código:
public async Task<IActionResult> Create([Bind("Id,Name")] Category category)
{
            if (ModelState.IsValid)
            {
                category.Date = DateTime.Now;
                db.Add(category);
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }
            return View(category);
       
}
Sabes por que aparece o atributo [Bind("Id,Name")]? Não sabes? Então vamos lá entender melhor para que serve este atributo.

Vamos supor que a classe Category possui as seguintes propriedades: Id, Name e Date


O atributo Bind anula todo o binding já padronizado e determina que só as propriedades listadas no atributo serão usadas. Assim a ação (neste caso) não poderá popular a propriedade Date. Então se vier algo pelo POST que não sejam Id e Name não serão considerados.

Um outra forma de fazer isso é difinindo a propriedade de desejas excluir. No nosso caso ficaria desta forma:

  [Bind(Exclude = "Date")]
public async Task<IActionResult> Create([Bind(Exclude = "Date")] Category category)
{
            if (ModelState.IsValid)
            {
                category.Date = DateTime.Now;
                db.Add(category);
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }
            return View(category);
       
}
Isto vale só para o local onde o atributo foi usado.

atributo Bing é usado como uma facilitador ou como segurança para garantir que nada além do que é necessário será afetado inadvertidamente.

Related Articles

0 comentários:

Enviar um comentário

Pesquisar neste blogue

Com tecnologia do Blogger.

Páginas