Как использовать Bind Prefix?

Скажем, если бы у меня была такая таблица в моей базе данных: Продукт

В ней был

ProductId
ProductName
ProductType

Теперь по какой-то причине я не могу назвать свои текстовые поля ProductName и ProductType, поэтому теперь мой метод просмотра будет выглядеть следующим образом

public ViewResult Test([Bind(Exclude ="ProductId")] Product)

Так что теперь, благодаря моей игре вокруг, ничего не будет сопоставлено в этом продукте, поскольку у них разные имена.

Так что я полагаю, что здесь на помощь придет префикс, но я не знаю, как его использовать. Также как я могу использовать его и Exclude одновременно.

Может ли кто-нибудь привести пример?

Решение

Префикс используется следующим образом, если, по вашему мнению, у вас...

<select name="p.ProductType">....

Вы можете привязать входящую форму к экземпляру вашей модели, сделав что-то вроде

public ActionResult([Bind(Prefix="p")]Product product)

Обратите внимание, что MVC сделает это автоматически, если вы назовете аргумент вашего метода p.

Префикс может быть очень полезен, если вы пытаетесь связать несколько сущностей одновременно (например, два поля имени).

Чтобы использовать исключающую привязку к определенным свойствам (например, чтобы избежать людей, передающих ProductIds в поддельной форме), просто установите имена свойств в исключающее значение

 public ActionResult([Bind(Prefix="p", Exclude="ProductId")]Product product)

Это гарантирует, что ProductId вашей сущности никогда не будет установлен.

Если вы хотите связать два совершенно разных имени полей, например, Type с ProductType, вы можете использовать пользовательское связывание модели или просто взять поле из FormCollection самостоятельно.

Комментарии (1)