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

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

42 голосов
/ 23 августа 2009

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

Это было

ProductId
ProductName
ProductType

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

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

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

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

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

1 Ответ

126 голосов
/ 23 августа 2009

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

<select name="p.ProductType">....</select>
<input type="text" name="p.ProductName" />

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

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...