Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何禁用特定类的默认模型绑定_C#_Asp.net Mvc - Fatal编程技术网

C# 如何禁用特定类的默认模型绑定

C# 如何禁用特定类的默认模型绑定,c#,asp.net-mvc,C#,Asp.net Mvc,我想禁用特定类的模型绑定,更具体地说,我不想通过默认模型绑定设置类的某些数据属性 例如。我有一个类的height和width属性,我希望由用户显式设置 如型号。高度=xxx 即使在我将模型传递给action方法时,默认的模型绑定也不应该设置该值 有什么方法可以做到这一点吗?请查看的属性 IMHO最好使用Include而不是Exclude,因为通过这种方式,您可以明确地知道应该自动绑定哪些属性。使用Exclude可能存在安全风险,黑客可能会利用它来设置绑定器不打算设置的属性。您可以按照darin的

我想禁用特定类的模型绑定,更具体地说,我不想通过默认模型绑定设置类的某些数据属性

例如。我有一个类的height和width属性,我希望由用户显式设置

如型号。高度=xxx

即使在我将模型传递给action方法时,默认的模型绑定也不应该设置该值

有什么方法可以做到这一点吗?

请查看的属性


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 {
    ....
}