我想禁用特定类的模型绑定,更具体地说,我不希望某个类的某些数据属性由默认模型绑定设置。如何禁用特定类的默认模型绑定
例如。我有一个类的高度和宽度属性,我想要明确设置由用户
像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