Asp.net core mvc 如何在asp.net core 1.0中获取valueprovider?

Asp.net core mvc 如何在asp.net core 1.0中获取valueprovider?,asp.net-core-mvc,value-provider,Asp.net Core Mvc,Value Provider,在MVC5中,我曾经在控制器操作中获得ValueProvider,如下所示: 公共类配置控制器:控制器 { 公共行动结果索引() { var valueProvider=此.valueProvider; var someValue=valueProvider.GetValue(“someKey”); 返回视图(); } } 但它似乎在Asp.NET Core1.0中消失了。有没有办法在新版本中获取ValueProvider 提前感谢您可以使用ControllerContext创建一个Compo

在MVC5中,我曾经在控制器操作中获得
ValueProvider
,如下所示:

公共类配置控制器:控制器
{
公共行动结果索引()
{
var valueProvider=此.valueProvider;
var someValue=valueProvider.GetValue(“someKey”);
返回视图();
}
}
但它似乎在Asp.NET Core1.0中消失了。有没有办法在新版本中获取
ValueProvider


提前感谢

您可以使用
ControllerContext
创建一个
CompositeValueProvider

var valueProvider = await CompositeValueProvider.CreateAsync(ControllerContext);
CompositeValueProvider表示 Microsoft.AspNetCore.Mvc.ModelBinding.IValueProvider,其值来自 来自Microsoft.AspNetCore.Mvc.ModelBinding.IValueProviders的集合

范例

[HttpPost]
public async Task<IActionResult> SomeAction()
{
    var valueProvider = await CompositeValueProvider.CreateAsync(ControllerContext);
    var someValue = valueProvider.GetValue("foo");
    return View();
}
[HttpPost]
公共异步任务SomeAction()
{
var valueProvider=wait CompositeValueProvider.CreateAsync(ControllerContext);
var someValue=valueProvider.GetValue(“foo”);
返回视图();
}

谢谢,我检查了源代码Mvc,发现与您的答案相同!奇怪的是,为什么要在这里显式地使用值提供程序?我这样问是因为ASP.NET Core 1.0中可能有新的支持,您甚至不需要这样做!我需要手动将值从值提供程序绑定到模型。因为我以前不知道模型要装订。请浏览此代码以解除我的目标: