【问题标题】:AttributeRouting is it possible to capture / inside of a parameter?AttributeRouting 是否可以在参数中捕获 / ?
【发布时间】:2015-01-24 00:54:12
【问题描述】:

首先我要明确我说的是AttributeRoutinghttp://attributerouting.net/的独立项目,而不是内置的属性路由。

以他们的示例代码稍作修改的版本为例:

public class SampleController : Controller
{   
    [GET("Sample")]
    public ActionResult Index() { /* ... */ }
    [POST("Sample")]
    public ActionResult Create() { /* ... */ }
    [PUT("Sample/{id}")]
    public ActionResult Update(string id) { /* ... */ }
}

假设对于Update,我想要请求PUT Sample/Cheese/Swiss,有没有办法通知AttributeRouting id 参数应该捕获“Cheese/Swiss”?

【问题讨论】:

  • 是的,我知道我可以使用 PUT Sample/Cheese-Swiss 或类似的请求,我可能最终会这样做,但我更希望能够在这里实现我最初的目标。
  • 为什么不Update(string product, string id)?和[PUT("Sample/{product}/{id})]?然后在必要时将其合并到方法中。
  • @tvanfosson 也可以,但如果我想要的 id 是 Cheese/Swiss/Block 或 School/PennState/Program/SoftwareEngineering。我想我可以采用元组方法并使用 X 方法来重构 url 并将其传递给单个共享方法。我的最终目标是瞄准相当高水平的动态。

标签: routing asp.net-mvc-5 attributerouting


【解决方案1】:

不会 [PUT("Sample/{*id}")] 工作吗?星号的意思是“剩下的”。

【讨论】:

  • 这在他们的网站上没有记录,虽然我熟悉内置 MVC 的所有路由的用法,但我不知道与属性路由相关。
猜你喜欢
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2012-12-31
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多