Подтвердить что ты не робот

Как использовать префикс привязки?

Скажем, если бы у меня была эта таблица в моем db: Product

Он имел

ProductId
ProductName
ProductType

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

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

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