私はasp.net mvcを学習していて、いつBindAttribute
を使用する必要があるのだろうかと思います。BindAttributeはいつ使用しますか?
最初のケース(Bind
を使用):
モデル:
public class Book
{
public string Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
}
コントローラ:Id
は、サーバー側で生成される
public IActionResult Create([Bind(nameof(Book.Name), nameof(Book.Author))] Book model)
{
return Ok();
}
ブック。だから、クライアント側はそれとは何の関係もなく、すべての動作を変更しようとする/ IDができないようにする。
(Bind
を使用していない)は、第2のケース:
モデル:
public class BookViewModel
{
public string Name { get; set; }
public string Author { get; set; }
}
コントローラー:第2のモデルはId
プロパティが含まれていないので
public IActionResult Create(BookViewModel model)
{
return Ok();
}
、我々はしないでください作成や変更を防止する必要があります。
私は2番目を好む。モデルの管理は簡単です。
ケースがありますmust
Bind
属性がありますか?
ありがとう!私はそれを使用しないでください?モデルに約10のプロパティ(9/10のプロパティが必要)が含まれていると、コードが読みにくく見えるようになると思います。 '[Bind(nameof(MyModel.Property1)、nameof(MyModel.Property2)、nameof(MyModel.Property3)、nameof(MyModel.Property4)..........)] ' – Vayne
「9/10状況 "除外プロパティを使用することができます。私は答えを更新しました。 –
asp.netコアは 'Exclude'属性をサポートしていませんが、私はそれを覚えています。ありがとう! – Vayne