MVC 5使用所有参数绑定实现

时间:2014-06-13 22:33:04

标签: c# asp.net-mvc asp.net-mvc-5

因此,MVC5引入了新的Bind属性,据我所知,它用于指定应该绑定的参数对象的哪些属性。此外,这是一种有助于防止XSS和模型绑定攻击的安全措施。大多数教程都会针对模型展示它。

public async Task<ActionResult> Create ([Bind(Include="Id,Description,IsDone")] ToDo todo)

在我的应用程序中,我只将视图模型传递给控制器​​和视图:

[HttpPost]
public ActionResult Create(UserViewModel vm)
{

}

我还应该在这里使用这种技术吗?

[HttpPost]
public ActionResult Create([Bind(Include="property, property2")]UserViewModel vm)
{

}

老实说,我很少有人不想绑定到视图模型中的每个属性。

首先,我对Bind属性的理解是否准确?

其次,我是否理解何时使用Bind属性准确?

1 个答案:

答案 0 :(得分:2)

  1. 你好了!
  2. 你也发现了!
  3. 您已充分了解该属性的用途。只有你可以防止森林火灾知道你是否应该使用该属性。如果您正在构建一个数据敏感的应用程序,那么您绝对希望保护自己免于过度发布。如果您正在构建一个内部低风险应用程序,也许您可​​以跳过魔术字符串,信任您的用户,而不是认为值得花时间。

    ASP.NET website有关于过度发布的更多信息。