2009-08-23 71 views
36

說,如果我有這個表在我的數據庫:產品如何使用綁定前綴?

它有

ProductId 
ProductName 
ProductType 

現在,不管什麼原因,我不能說出我的文本框,產品名稱和ProductType所以現在我查看方法是這樣的

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

所以,現在通過我的玩耍,沒有什麼東西會匹配這個產品,因爲他們有不同的名字。

所以我想這是哪裏前綴會進來,但我不知道如何使用它。我怎麼使用它和排除在同一時間。

有人可以舉個例子嗎?

回答

115

前綴用於如果您認爲您有如下...

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

你可以做這樣的事情

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

您輸入的表單綁定到你的模型的實例應該注意,如果你命名你的方法參數p,MVC會自動爲你做這件事。

如果您嘗試同時綁定多個實體(例如兩個名稱字段),則前綴可能非常有用。

要使用排除綁定到特定的屬性(即避免人們傳遞ProductIds在僞造的形式)剛剛成立的屬性名稱排除

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

這將確保你的實體產品編號永遠不會被設置。

如果您想要綁定兩個完全不同的字段名稱,例如鍵入ProductType,您可以查看自定義模型綁定,或者只是自己從FormCollection中抓取字段。

+1

很棒的回答。 +1 - 這幫了我。 – Chev 2011-03-17 16:57:29