Ответ 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 самостоятельно.