我想禁用特定類的模型綁定,更具體地說,我不希望某個類的某些數據屬性由默認模型綁定設置。如何禁用特定類的默認模型綁定
例如。我有一個類的高度和寬度屬性,我想要明確設置由用戶
像model.height = xxx;
即使將模型傳遞給動作方法,也不應該使用默認模型綁定器設置該值。
有沒有辦法做到這一點?
我想禁用特定類的模型綁定,更具體地說,我不希望某個類的某些數據屬性由默認模型綁定設置。如何禁用特定類的默認模型綁定
例如。我有一個類的高度和寬度屬性,我想要明確設置由用戶
像model.height = xxx;
即使將模型傳遞給動作方法,也不應該使用默認模型綁定器設置該值。
有沒有辦法做到這一點?
看看BindAttribute的Exlude,Include特性。
public ActionResult Create([Bind(Exclude="Height")]MyModel model)
恕我直言你最好使用Include而不是Exclude,因爲這樣你就明確了應該自動綁定哪些屬性。使用排除可能是一種安全風險,黑客可以利用它來設置不打算由活頁夾設置的屬性。
你可以做到這一點作爲達林建議,或者你可以真正做到這一點的模型類本身
using System.Web.Mvc;
[Bind(Exclude = "Height, Width")]
public class MyModelClass {
....
}
這樣,無論使用它的這些屬性將永遠不會得到約束。明確地說,它會更安全,並且提供一個(Include =)列表,這樣,新屬性不會默認綁定,並且在您這樣做時考慮到安全影響,您不得不包含它們。
這是在用戶端完成的,我沒有訪問控制器,IAM只是創建模型 – ravikiran 2009-09-25 09:56:28