2009-11-24 34 views
0

的問題是在標題,實際上是 - 讓我們說我有一個簡單的類是這樣的:
如果在模型綁定時排除屬性或字段,它將具有什麼價值?

public class Product { 
    public Int32 ID { get; set; } 
    public String Name { get; set; } 
    //... 
} 

當我在操作方法使用它,像這樣:

public ViewResult DoSomething([Bind(Exclude="ID")]Product product] { 
//... 
} 

什麼價值會product.ID有這個動作方法嗎?也許這將是Int32的默認值?案例ID爲引用類型時爲null?我只是感興趣,沒有在網上找到它。

+0

你試圖自己測試一下嗎? – bzlm 2009-11-24 13:08:04

回答

1

由於根本不會進行初始化,因此該屬性將具有其默認值。

+0

是否已初始化,但是排除與排除模型綁定? – chester89 2009-11-24 11:20:53

+0

「排除」列表中的屬性不允許綁定,因此DefaultModelBinder不會嘗試綁定它們。它們也不會影響ModelState。 – bzlm 2009-11-24 13:07:32

0

DefaultModelBinder,如果指定沒有別的,你正在使用,確實使用default(T)爲未綁定的值。

要更改此設置,您可以修改操作方法中的每個參數的綁定行爲(例如您在示例中使用BindAttribute),或者按例如每種類型修改綁定行爲。 Global.asax中。

相關問題