ASP.NET MVC绑定方法而不是参数的属性

Ale*_*lex 4 c# asp.net-mvc

我知道你可以这样做:

public ActionResult DoSomething([Bind(Exclude = "CreationDate")] Item item)
{ /*...*/ }
Run Code Online (Sandbox Code Playgroud)

[Bind(Exclude = "CreationDate")] 
public ActionResult DoSomething(Item item)
{ /*...*/ }
Run Code Online (Sandbox Code Playgroud)

public ActionResult DoSomething([Bind(Exclude = "CreationDate")] Item item)
{ /*...*/ }
Run Code Online (Sandbox Code Playgroud)

这有完全相同的效果吗?如果绑定到多个参数怎么办?

Rob*_*vey 6

第二种形式是我更常见的形式.据我所知,两种形式完全相同.

Exclude选项采用以逗号分隔的属性列表.排除列表只是从绑定中排除一个或多个参数; 它对剩余的参数没有影响.

例:

[Bind(Exclude="ID, Name")]
Run Code Online (Sandbox Code Playgroud)

  • 第二种形式不会编译.Bind属性的允许目标是类和参数.[BindAttribute](http://msdn.microsoft.com/en-us/library/system.web.mvc.bindattribute.aspx) (4认同)