- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要同时支持基于查询参数的路由 (/api/models?id=1
) 和基于路由的路由 (/api/models/1
>) 同时仍然允许明确访问模型集合 (/api/models
)?
我的 Controller 看起来(有点)像这样:
[Route("/api/{controller}")]
public class ModelsController : Controller
{
[HttpGet]
public Models[] GetModels([FromQuery]QueryOptions queryOptions)
{
//...
}
[HttpGet("{id:int}")]
public Model Get([FromRoute] int id)
{
//...
}
[HttpGet("?{id:int}")]
public Model Get2Try1([FromQuery] int id)
{
//Fails with ": The literal section '?' is invalid.
//Literal sections cannot contain the '?' character."
//Which makes sense after some reading...
}
[HttpGet]
public Model Get2Try2([FromQuery] int id)
{
//Fails with "AmbiguousActionException: Multiple actions matched.
//The following actions matched route data and had all constraints satisfied:
//GetModels and Get2Try2"
//Which I think I understand as well...the absence of optional params
//means ambiguous routing...
}
[HttpGet] //What here?
public Model Get2Try3([FromQuery] int id) //and/or here?
{
}
}
我觉得应该有某种方法(通过声明式路由)来实现这一点。有没有人按照这些思路做过任何事情?
此外,当前代码库是 ASP.NET Core (RC1),不久将升级到 RTM/1.0。任何一方的细节可能相似,但我对任何一方/两者都感兴趣。
最佳答案
我发现以下方法有效:
[HttpGet, Route("{id?}")]
...关键是'?'。您不需要方法签名中的任何 [FromX],这可以解决问题并满足查询字符串和路由参数传递的需要。
不幸的是,Swagger UI 不喜欢它并期望一些显式参数开箱即用(https://github.com/domaindrivendev/Ahoy/issues/47 或 https://github.com/domaindrivendev/Ahoy/issues/182),但这是另一回事了:)
关于asp.net-mvc - 我如何同时绑定(bind) FromQuery 和 FromRoute 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731777/
原文链接: https://www.cnblogs.com/ysmc/p/17663663.html 。 最近技术交流群里,还有不少小伙伴不知道 FromRoute、FromQuery
我们可以在 Controller 操作中使用 [FromQuery(Name"param")] 来指定如何在 uri 中使用传递的参数,如下所示: [HttpGet()] public IAction
public class Filter { public string Property1 { get;set; } public string Property2 { get;set
public class Filter { public string Property1 { get;set; } public string Property2 { get;set
我正在尝试使用 Razor 页面通过 ASP.NET 构建一个具有简单表单的简单页面,但无法弄清楚如何处理特定的回发。特别是(通过我无法控制的因素)我得到一个带有单个小写和 kebab 大小写查询参数
我在查询位于欧盟的 BigQuery 表/数据集时遇到问题。此处报告了该问题:https://github.com/GoogleCloudPlatform/DataflowJavaSDK/issues
我的 Web API 中的 Get 方法有问题:API 获取对象但使用默认值。 例如: myRefitClient.GetSummary(new MyClass() { Prop = 1 }); We
如何使用FromQueryAttribute获取一个复杂的对象? [HttpGet] public IActionResult Get([FromQuery] DataGridRequest requ
我注意到的一件事是 BigQueryIO.read().fromQuery() 的性能比 Apache Beam 中的 BigQueryIO.read().from() 的性能要慢得多。为什么会发生这
我正在尝试对 BigQuery 表执行查询,提取一列并填充到文件中。下面的代码抛出异常。我可能是错的,但似乎该过程正在尝试将临时结果以 avro 格式写入临时位置,从中读取数据并抛出强制转换异常。 p
我正在尝试通过 GET 请求将一些参数发送到查询字符串中的 Controller 。我将查询字符串中的所有参数都设置为一个 Dictionary使用 [FromQuery] .它运行良好,直到其中一个
我有一个 Action : [HttpGet] [Route("foo")] public ActionResult Foo([FromQuery] MyClass request) { va
public class InputModel { public string Thing { get; set; } public DateTime AnotherThing { g
在 ASP.NET Core 中,我需要将 ViewModel 成员数据绑定(bind)到传入的请求数据。我不在乎它来自表单帖子、查询字符串还是路由参数。 似乎这些来源中的每一个都有新的属性,但没有一
我尝试将 [FromQuery] 与 Azure Function v3 一起使用,但收到以下错误: Cannot bind parameter 'search' to type String. 对于
我熟悉 FromBody 和 FromRoute。他们似乎很清楚。 我使用 FromUri 来处理映射到列表或 string[] 的多值参数。 FromQuery 听起来很相似,但有什么区别吗? 最佳
我尝试将 [FromQuery] 与 Azure Function v3 一起使用,但收到以下错误: Cannot bind parameter 'search' to type String. 对于
使用c#,代码是这样的 DynamoDBContext context = new DynamoDBContext(client, new DynamoDBContextConfig(
我目前发现您可以对原始 sql 查询进行水合。 我有以下查询: DB::table(DB::raw('(SELECT *, Y(location) AS longitude, X(location)
我有一些类似的代码: [HttpGet("SearchStuff")] public IActionResult SearchStuff([FromQuery]DateTime from,
我是一名优秀的程序员,十分优秀!