问题标签 [attributerouting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
203 浏览

asp.net-mvc - AttributeRouting 生成指定语言的链接

我想知道是否有某种方法可以Html.ActionLink用来设置必须使用哪种语言生成链接的 URL AttributeRouting。我尝试过:

但它不起作用。有没有办法设置必须AttributeRouting以哪种语言生成 URL。

我需要的是在我的网站链接顶部放置以更改当前语言。例如,如果用户在 /en/contact 并单击链接以更改为西班牙语,我希望重新加载同一页面,但使用西班牙语 /es/contacto 而不是重定向到主页,因此我需要在CurrentCulture 的不同文化允许更改语言并继续到同一页面。

谢谢你的帮助

0 投票
1 回答
638 浏览

orchardcms - AttributeRouting - 在程序集中获取路由的方法

我想将AttributeRouting与 Orchard CMS 一起使用。为此,我需要IRouteProvider使用返回 Orchard 列表的方法来实现RouteDescriptor

我需要一种获取路线列表的方法,以便可以执行以下操作:

此方法来自 MvcRouting 但我想使用功能更丰富的AttributeRouting但找不到扫描当前程序集以查找路由属性的方法。需要一种 AttributeRouting 方法来返回我可以投射到 s 列表中RouteDescriptor但实际上不注册它们的路由列表,将其留给 Orchard。

如果我想直接注册路由(在非 Orchard 项目中),我会使用以下 AttributeRouting 扩展方法:

但这不适用于其他 Orchard 模块。所以需要采取上面的方法。

你能想到什么办法吗?

0 投票
1 回答
10520 浏览

asp.net-web-api - 请求的资源不支持 http 方法“PUT”

我将 AttributeRouting 与我的 Web API (MVC 4) 一起使用。

为什么这行得通?

而这个没有?

错误消息:请求的资源不支持 http 方法“PUT”。为什么我必须明确接受 PUT 动词?

我只是感到困惑,因为与 POST 类似的东西可以正常工作(我不必指定接受的动词):

从其他各种帖子中,我相信这与我的 web.config 中的设置有关。Web 服务器部分当前如下所示:

我尝试了一些方法,例如删除 WebDav 之类的。但到目前为止没有任何效果(除非在注释中明确允许 PUT 动词)。

哦,我正在使用 Visual Studios 内置的开发服务器。

多谢你们!

0 投票
2 回答
371 浏览

asp.net-mvc - 如何在 MVC 网站中使用属性路由翻译查询参数?

我有一个带有 Index 方法的 HorseController,例如:

我把这条路线翻译成:

问题是现在,丹麦用户的网址是:

我的问题是如何翻译查询参数呢?

我无法在文档中找到它。

0 投票
1 回答
1617 浏览

asp.net-mvc-4 - ASP.NET MVC 4 AttributeRouting Per-Route DelegatingHandler

我正在使用 nuget 包http://nuget.org/packages/AttributeRouting/并为我的 web api 指定了自定义路由。当我尝试在 WebApiConfig 中向我的路由添加自定义委托处理程序 (dh) 时,我的 dh 永远不会被调用。这是有道理的,因为 dh 被分配给默认路由,而不是分配给我用我的 web api 控制器装饰的自定义路由。我可以全局注册 dh 并执行它,但是,我想为每个路由注册自定义 dh(不同的路由需要做不同的事情,我不想将大量逻辑放入一个全局 dh)。

在使用 AttributeRouting 包时,有谁知道如何做到这一点?我已经搜索了网站上的文档,但没有找到任何东西。

任何帮助深表感谢。谢谢!

0 投票
2 回答
10744 浏览

rest - 组合键资源 REST 服务

我在工作中遇到了一个问题,我找不到有关在 RESTful Web 服务中针对主键是其他资源 ID 组合的资源执行 CRUD 操作的常用标准或实践的信息。我们正在使用 MVC WebApi 创建控制器。例如,我们有三个表:

  • Product: PK=产品编号
  • Part: PK=PartId
  • ProductPartAssoc: PK=(ProductId, PartId)

一个产品可以有很多部分,一个部分可以是很多产品的组成部分。关联表还包含与关联本身相关的附加信息,而不是需要可编辑的。

我们有ProductsControllerPartsController类使用定义为的路由模板处理通常的 GET/PUT/POST/DELETE 操作:{controller}/{id}/{action}这样以下 IRI 可以工作:

  • GET,POST /api/Products- 返回所有产品,创建一个新产品
  • GET,PUT,DELETE /api/Products/1- 检索/更新/删除产品 1
  • GET,POST /api/Parts- 返回所有部分,创建一个新部分
  • GET,PUT,DELETE /api/Parts/2- 检索/更新/删除第 2 部分
  • GET /api/Products/1/Parts- 获取产品 1 的所有部件
  • GET /api/Parts/2/Products- 获取第 2 部分是组件的所有产品

我遇到的问题是如何为 ProductPartAssoc 资源定义路由模板。获取关联数据的路由模板和 IRI 应该是什么样的?遵守惯例,我希望是这样的:

  • GET,POST /api/ProductPartAssoc- 返回所有关联,创建关联
  • GET,PUT,DELETE /api/ProductPartAssoc/[1,2]- 检索/更新/删除产品 1 和第 2 部分之间的关​​联

我的同事发现这在美学上令人不快,并且似乎认为完全没有ProductPartAssocController课程会更好,而是ProductsController向管理关联数据添加额外的方法:

  • GET,PUT,DELETE /api/Products/1/Parts/2- 获取产品 1 和第 2 部分之间关联的数据,而不是作为第 1 部分的成员的第 2 部分的数据,这通常是基于其他示例(例如/Book/5/Chapter/3我在其他地方看到的)的情况。
  • POST 这里不知道他们期望 IRI 是什么样子。不幸的是,他们是决策者。

归根结底,我想我正在寻找的不是验证,就是我可以指出并说“看,这就是其他人所做的”的方向。

处理由复合键标识的资源的典型做法是什么?

0 投票
5 回答
24657 浏览

c# - 使用 AttributeRouting 在 WebAPI 中指定默认控制器/操作路由

在使用 AttributeRouting 而不是 WebAPI 使用的默认 RouteConfiguration 时如何设置默认控制器。即去掉注释代码部分,因为这在使用 AttribteRouting 时是多余的

如果我评论上面的部分并尝试运行 webapi 应用程序,我会收到以下错误,因为没有定义默认的 Home 控制器/操作。 HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。

如何通过 Home 控制器/动作的属性路由指定路由?

编辑:代码示例:

0 投票
1 回答
6456 浏览

c# - RouteArea 和 RoutePrefix 使用 AttributeRouting 有什么区别

所以我一直在使用http://attributerouting.net/并且喜欢它。但是,当我应该使用 RouteArea 或 RoutePrefix 或同时使用两者时,我似乎无法理解。

例如,我的想法是,对于 API 控制器,使用 RouteArea("api"),然后作为前缀可能使用控制器的主要功能?任何澄清都会有所帮助,谢谢!

0 投票
1 回答
1620 浏览

.net - 如何配置 Web Api 以从 url 参数中选择响应格式?

我正在尝试配置 web api 区域以允许我传递可选的格式扩展名。这是我RegisterArea的方法的代码:

现在,如果我去http://www.example.com/api/countries它工作正常,但是当我尝试http://www.example.com/api/countries.json给我

我究竟做错了什么?

0 投票
1 回答
999 浏览

asp.net-web-api - Http.EnumRouteContraint 必须实现 System.Web.Routing.IRouteConstraint

我在我的 Web API 项目中使用 AttributeRouting。我已经为 Web API 安装了 AttributeRouting。我想定义一个枚举路由约束,所以我设置了我的 AttributeRoutingHttpConfig 配置,如下所示:

当我启动我的应用程序时,我立即收到以下错误:

约束“AttributeRouting.Web.Http.Constraints.EnumRouteConstraint`1[[MyProject.Data.Models.ListType, MyProject.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]”必须实现 System.Web。路由.IRouteConstraint

我查看了 AttributeRouting.Web.Http.Constraints.EnumRouteConstraint 的源代码,并确认它实现了 IHttpRouteConstraint,这大概是 MVC 命名空间中 IRouteConstraint 的 WebAPI 等效项。

有谁知道我做错了什么以及如何让它工作?

更新:

我试图创建一个完全空白的 Web 应用程序,并且只为 WebAPI 引用添加 WebAPI 和 AttributeRouting。尽管绝对没有对 MVC 程序集的引用,但我仍然收到相同的错误消息。然而,我确实发现在 AttributeRouting.Web.Constraints 命名空间中找到了另一个 EnumRouteConstraint,它工作得很好。它似乎不是 MVC 特定的,因为它位于 Core AttributeRouting 程序集中。我很想知道为什么只有一个有效的 EnumRouteConstraint 类有两个不同的类。但这是另一个问题。