C# 如何禁用特定类的默认模型绑定
我想禁用特定类的模型绑定,更具体地说,我不想通过默认模型绑定设置类的某些数据属性 例如。我有一个类的height和width属性,我希望由用户显式设置 如型号。高度=xxx 即使在我将模型传递给action方法时,默认的模型绑定也不应该设置该值 有什么方法可以做到这一点吗?请查看的属性C# 如何禁用特定类的默认模型绑定,c#,asp.net-mvc,C#,Asp.net Mvc,我想禁用特定类的模型绑定,更具体地说,我不想通过默认模型绑定设置类的某些数据属性 例如。我有一个类的height和width属性,我希望由用户显式设置 如型号。高度=xxx 即使在我将模型传递给action方法时,默认的模型绑定也不应该设置该值 有什么方法可以做到这一点吗?请查看的属性 IMHO最好使用Include而不是Exclude,因为通过这种方式,您可以明确地知道应该自动绑定哪些属性。使用Exclude可能存在安全风险,黑客可能会利用它来设置绑定器不打算设置的属性。您可以按照darin的
IMHO最好使用Include而不是Exclude,因为通过这种方式,您可以明确地知道应该自动绑定哪些属性。使用Exclude可能存在安全风险,黑客可能会利用它来设置绑定器不打算设置的属性。您可以按照darin的建议执行,也可以在模型类本身中执行
using System.Web.Mvc;
[Bind(Exclude = "Height, Width")]
public class MyModelClass {
....
}
这样,无论在哪里使用,这些属性都不会受到约束。更安全的做法是显式的,并提供一个(Include=)列表,这样新属性在默认情况下就不会被绑定,而且考虑到这样做的安全性,您必须包含它们。这是在用户端完成的,我没有访问控制器的权限,我只是在创建模型
using System.Web.Mvc;
[Bind(Exclude = "Height, Width")]
public class MyModelClass {
....
}