2009-09-25 66 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 =)列表,这样,新属性不会默认绑定,并且在您这样做时考虑到安全影响,您不得不包含它们。

相关问题