2017-05-29 29 views
0

我确实有一种情况,用户想创建一个实体。 这是接收包含要绑定的数据的POST变量的Actions。但是,有一些数据与URL相同的名称,例如Action?Id=123在ASP.NET MVC中,如何绑定仅POST变量,而不是GET变量

public ActionResult Create([Bind()] Entity entity) ... 

这是我的实体POCO类

public class Entity { 

    public int Id {get;set;} 
    public string SomeData {get;set;} 

} 

当DataBinder的收到请求时,它结合从URL的ID该实体。它不应该发生!,我怎样才能避免来自URL(GET)的绑定变量,并只绑定来自POST数据的变量?

回答

0

您可以使用属性过滤器,从形式明确地获得数据:

public ActionResult Post([FromForm]int id) 
+0

这是否过滤真的存在?我尝试在ASP.NET MVC 5中没有成功。 –

+1

过滤器存在于MVC6中(https://lbadri.wordpress.com/2014/11/23/web-api-model-binding-in-asp-net-mvc-6-asp-net-5/)。 –