问题标签 [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.
c# - OWIN 无法使用 webapp.start 单独运行多个应用程序
当我尝试在不同的 url 上启动两个应用程序时,我遇到了属性路由中间件的问题。如果我在单独的应用程序中有两条类似的路线,但使用不同的 http 方法,web.api 似乎只能找到其中一种方法。
如何隔离两个应用程序以使属性路由不冲突?
c# - Catch-all 路由无法使用 WebApi2 ApiController 找到路由
我正在创建一个 WebApi2 服务,并且我要实现的方法之一表示来自内部树结构中的对象的 HTTP GET - 因此请求将遵循以下内容:
所以我希望我的方法接收“path/to/object/in/tree”。
但是,当我运行它时,我只得到一个 404,有趣的是,我得到一个与标准 IIS 404 不同的 404。它的标题是“'/'应用程序中的服务器错误。”,而一个完全无效的资源标题为“HTTP 错误 404.0 - 未找到”。
我正在使用默认模板来尝试看看我是否可以让它工作,因此相似。
我有这个RouteConfig
这是我的ValuesController
:
有趣的是,如果我从中派生Controller
而不是ApiController
它可以正常工作,但是正常的属性路由不起作用。
我尝试按照这篇文章(http://www.tugberkugurlu.com/archive/asp-net-web-api-catch-all-route-parameter-binding)中的方法,但我无法让它工作。
我确定我错过了一些愚蠢的简单的东西,但是在花了几个小时之后,我认为问我做错了什么是谨慎的。
谢谢
米
c# - Attribute Routing Strange Behavior in ApiController
I'm using attribute routing to specify my routes in a controller that inherits from System.Web.Http.ApiController. I'm getting some funky behavior. Here's some sample code:
That works absolutely how I would expect. When I visit ~/api/1/user/someId I get the expected information back. When I switch to not include the '1' in the route prefix I get "No HTTP resource was found that matches the request URI 'baseUrl/api/user/someId'."
I have mvc routes, web api routes and attribute routes all being registered on app start in this project but I would think that the default routes for this controller would be ~/userrest/... so I wouldn't think registering those would be the cause of this but I could be wrong.
Sample of what I want:
I'd expect that ~/api/user/someId would work however I get the error mentioned above ("No HTTP resource was found that matches the request URI 'baseUrl/api/user/someId'.").
Full error xml:
c# - 使用属性路由为 Web Api 构建视图中的 url
如何在我的视图中从 web api 获取 url?
示例(来自msdn-blog):
现在我想在我的视图中构建“/reviews/edit”,我该怎么做?
我尝试过创建一个小扩展方法,但它要求我给每条路线一个实际的“RouteName”。有没有我可以使用的方法(比如在 MVC 中),我可以只传递控制器和操作?
我现在使用的方法(使用 RouteName)也不允许我使用整数作为参数(除非我传递默认值)。如果我确实需要命名所有路由,我如何创建路由 url,但在请求的“数据”部分中传递我的参数?
当前方法:
编辑
当我使用类似的方法时Url.RouteUrl(new { controller = ..., action = ...})
,它会直接重定向到该操作(例如new { controller = "Reviews", action = "Show"} --> /reviews/show
,我希望它重定向到/reviews/...
asp.net-mvc-5 - 找到多个与 URL 匹配的控制器类型。如果多个控制器上的属性路由与请求的 URL 匹配,就会发生这种情况
...猜猜我是第一个问这个的?
假设您有以下路由,每个路由都在不同的控制器上声明:
Order
...您可以在 MVC 5.0 中使用相同的代码执行此操作,但参数除外。但升级到 MVC 5.1 后,您会在问题标题中看到异常消息:
找到多个与 URL 匹配的控制器类型。如果多个控制器上的属性路由与请求的 URL 匹配,就会发生这种情况。
那么新RouteAttribute.Order
属性只是控制器级别的吗?我知道在 AttributeRouting.NET 中你也可以这样做SitePrecedence
。当所有操作都在同一个控制器中时,唯一的方法是拥有上述路由吗?
更新
抱歉,我应该提到这些路由是在 MVC 控制器上,而不是 WebAPI。我不确定这会如何影响 ApiControllers。
c# - 将“routes.MapMvcAttributeRoutes()”添加到 RegisterRoutes() 有什么好处?
根据文章“ ASP.NET MVC5 中的新增功能”,您必须将其添加到 RegisterRoutes() 方法中才能使用属性路由:
...所以现在的方法是:
我没有那个额外的/中间调用,我的属性路由一直在工作。
那么添加它对我有什么作用,如果有的话?
asp.net-mvc - 多个 DateTime 参数的属性路由
我已经定义了属性路由,它将两个参数作为日期时间
但不确定,怎么可能。属性路由适用于单个参数,但不确定它如何适用于 2 个参数。也很难知道它将如何从 url 中区分两个参数
单个参数工作正常
http://domain.com/Home/overview/2014/02/01
两个参数的 url 是什么?我尝试了下面的但有一个例外
generics - 网络 API。具有属性路由的通用控制器
问题
当我在实际控制器上创建带有路由的方法时,说: “api/country/something”...
当我执行上述请求时,我的代码被执行并返回数据。
但是当我尝试在基本控制器上调用我的路由时。例如:“api/国家/代码/123”
我收到 404 错误。
问题
关于如何在使用属性路由的同时实现通用路由的任何想法?
特定控制器
根据
c# - MVC 属性路由 - 带有 GET 和 POST 的默认控制器索引
我们有一个 MVC 5.1 项目并且正在使用属性路由。除了上面有登录表单的默认页面外,一切正常。
表单通过 GET 很好地显示,但在 POST 时我们得到......
HTTP 错误 405.0 - 方法不允许
您正在查找的页面无法显示,因为正在使用无效的方法(HTTP 动词)。
通常默认路由会处理 POST 和 GET 都很好。
显然,我在默认路由上的帖子路由上遗漏了一些东西,因为其他页面上的后续帖子工作正常。
有人做过吗?
谢谢,
asp.net-mvc-routing - MVC5:控制器之间的属性路由优先级
我在我的控制器中使用来自 MVC5 的属性路由。
问题:
有没有办法控制控制器之间的属性路由优先级?
考虑以下
根据上面的代码,HomeController.Index()
应该使用以下请求调用 action 方法:
- 领域/
- 域/{用户名}
- 域/家/
- 域/家/{用户名}
- 域/家/索引/
- 域/家/索引/{用户名}
第二控制器:
ProfileController.Index()
应该使用以下请求调用。
- 域/配置文件
- 域/配置文件/索引
问题
从示例中,如果我发送domain/profile
url,则会引发歧义异常。domain/{username}
和之间似乎有歧义domain/profile
。
现在,如果我使用基于约定的路由,这将起作用(第一场比赛获胜)。但它可以在 MVC5 属性路由中完成吗?因为我发现第三方库支持控制器之间的优先级
https://github.com/mccalltd/AttributeRouting/wiki/Controlling-Route-Precedence