Para que é usado Bind(“Propriedade”)?
Ao criarmos um CRUD com scalfold no Asp.net MVC, nos métodos dePOST
, 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);
}
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
Um outra forma de fazer isso é difinindo a propriedade de desejas excluir. No nosso caso ficaria desta forma:
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.
O atributo Bing é usado como uma facilitador ou como segurança para garantir que nada além do que é necessário será afetado inadvertidamente.
O atributo Bing é usado como uma facilitador ou como segurança para garantir que nada além do que é necessário será afetado inadvertidamente.
0 comentários:
Enviar um comentário