我的控制器方法如下所示:
public ActionResult SomeMethod(Dictionary<int, string> model)
{
}
Run Code Online (Sandbox Code Playgroud)
是否可以仅使用查询字符串来调用此方法并填充“模型”?我的意思是,键入如下内容:
ControllerName/SomeMethod?model.0=someText&model.1=someOtherText
Run Code Online (Sandbox Code Playgroud)
在我们的浏览器地址栏中。可能吗?
编辑:
看来我的问题被误解了-我想绑定查询字符串,以便自动填充Dictionary方法参数。换句话说-我不想在我的方法中手动创建字典,但是我会用一些自动数学的.NET绑定器来创建它,所以我可以像这样立即访问它:
public ActionResult SomeMethod(Dictionary<int, string> model)
{
var a = model[SomeKey];
}
Run Code Online (Sandbox Code Playgroud)
是否有自动装订机,足够聪明地做到这一点?
我正在创建一个 WebApi,我需要为我的端点获取一个键值对GET。我发现了一些在POST方法总线中使用字典的例子,这似乎不起作用GET
到目前为止我尝试过这个:
[HttpGet]
public IActionResult Get([FromQuery] Dictionary<string, string> myVar)
{
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 swagger 来测试 API,如果我通过了,{"key":"value"}我将得到带有一对的字典,值是我传入的整个对象。( {[myVar, {"key":"value"}]})
将多个键值对传递给 WebApi forGET方法的正确方法是什么?
编辑:根本问题是我正在使用 swagger (虚张声势)来测试我的端点。目前这个问题不支持github 上的动态查询参数 Issue。一旦将 OpenApi v3 支持添加到github 上的 swashbucle Issue 中,它就应该支持它。