2017-05-29 50 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/)。 –