4

ValueProvider在 MVC5 中,我曾经像这样在 Controller Action中获取一个:

public class ConfigurationsController : Controller
{
    public ActionResult Index()
    {
        var valueProvider = this.ValueProvider;
        var someValue = valueProvider.GetValue("someKey");
        return View();
    }
}

但它似乎在 Asp.NET Core 1.0 中消失了。有没有办法ValueProvider在新版本中获得?

提前致谢

4

1 回答 1

3

您可以创建一个CompositeValueProvider使用ControllerContext.

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();
}
于 2016-07-10T10:02:16.040 回答