2009-09-25 112 views
1

我想禁用特定類的模型綁定,更具體地說,我不希望某個類的某些數據屬性由默認模型綁定設置。如何禁用特定類的默認模型綁定

例如。我有一個類的高度和寬度屬性,我想要明確設置由用戶

像model.height = xxx;

即使將模型傳遞給動作方法,也不應該使用默認模型綁定器設置該值。

有沒有辦法做到這一點?

回答

1

看看BindAttributeExludeInclude特性。

public ActionResult Create([Bind(Exclude="Height")]MyModel model) 

恕我直言你最好使用Include而不是Exclude,因爲這樣你就明確了應該自動綁定哪些屬性。使用排除可能是一種安全風險,黑客可以利用它來設置不打算由活頁夾設置的屬性。

+0

這是在用戶端完成的,我沒有訪問控制器,IAM只是創建模型 – ravikiran 2009-09-25 09:56:28

1

你可以做到這一點作爲達林建議,或者你可以真正做到這一點的模型類本身

using System.Web.Mvc; 

[Bind(Exclude = "Height, Width")] 
public class MyModelClass { 
    .... 
} 

這樣,無論使用它的這些屬性將永遠不會得到約束。明確地說,它會更安全,並且提供一個(Include =)列表,這樣,新屬性不會默認綁定,並且在您這樣做時考慮到安全影響,您不得不包含它們。

相關問題