ASP.NET MVC:ValueProviders的执行顺序

我想知道在ASP.NET MVC中执行不同ValueProviders的顺序。

ValueProviders:

  • QueryStringValueProvider
  • RouteDataValueProvider
  • FormValueProvider

我没有找到相关信息。

如果记忆为我服务,优先级就是这样。

  1. 请求中的表单数据
  2. 路线数据
  3. 请求参数
  4. Http文件集

编辑我似乎与以下网站达成一致,该网站列出了相同的订单。 http://www.howmvcworks.net/OnModelsAndViewModels/TheBeautyThatIsTheModelBinder

您可以从ASP.NET MVC源代码中查看: ValueProviderFactories.cs

以下是ValueProviders的预定义顺序:

  private static readonly ValueProviderFactoryCollection _factories = new ValueProviderFactoryCollection() { new ChildActionValueProviderFactory(), new FormValueProviderFactory(), new JsonValueProviderFactory(), new RouteDataValueProviderFactory(), new QueryStringValueProviderFactory(), new HttpFileCollectionValueProviderFactory(), };