【发布时间】:2017-09-26 13:56:41
【问题描述】:
在 ASP.NET Core 中,我需要将 ViewModel 成员数据绑定到传入的请求数据。我不在乎它是来自表单帖子、查询字符串还是路由参数。
似乎每个来源都有新的属性,但没有一个可以处理所有这些。
[FromQuery(Name="xyz")] // Works only with query string
[FromForm(Name="xyz")] // Works only with form data
[FromRoute(Name="xyz")] // Works only with route data
public string Something {get; set;}
有没有办法支持所有这些?
【问题讨论】:
-
如果你没有添加这些属性,
DefaultModelBinder不会处理这个吗?它将在表单值、路由值和查询字符串中查找Something,按此顺序。 (Microsoft docs) -
是的,但如果参数名称与属性名称相同。但是,如果您需要绑定不同的参数名称并且仍然可以从您所说的默认行为中受益,那么显然现在没有办法,这是一种耻辱。
标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc .net-core