问题标签 [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# - 尝试使用 AttributeRouting 创建默认 ASP.NET MVC 路由
我刚刚开始在我的 ASP.NET MVC3 应用程序中使用AttributeRouting 。我一开始就使用 -no- 控制器。(新的空 MVC3 应用程序)
然后我做了一个区域。(称为Documentation
:)
然后我添加了一个控制器(称为DocumentationController
:)
然后我做了这个。。
以下路线有效:/documentation/index
但是我怎样才能使这两条路线起作用?
1 - /
<-- (默认路由/未指定特定路由) 2 - /documentation
<-- 未添加“索引”子路由部分。
这可以用AttributeRouting完成吗?
更新:
我知道如何使用默认的 ASP.NET MVC3 结构等来做到这一点。我想做的是通过 AttributeRouting 来解决这个问题。
c# - 使用 AttributeRouting 在 URL 中隐藏区域
我们正在使用 Areas 对用 ASP.NET MVC3 编写的 API 进行版本控制,并使用 AttributeRouting 来定义我们的路由。
现在我们有一个“v1”区域,它是我们的第一个 API 版本。当我们到达 v2 时,我们将复制 v1 并进行修改。
我想对网站使用相同的版本控制,并且我不希望 /v1 出现在路由中。
我的问题是,如何在我的 URL 中隐藏区域以便我可以调用
代替
这是我的控制器中的内容
这是我尝试访问 mywebsite.com/ 时得到的结果
提前致谢!
asp.net-mvc - 属性路由和本地化问题
我在 Nuget 上使用最新版本的 AttributeRouting 包来为我的 ASP.Net MVC 项目设置路由。我正在创建一个有两种语言的网站,英语(主要)和西班牙语(次要)。两种语言的网址不同。例如,英语的 about us 是这样的:www.root.com/en/about-us,而西班牙语版本可能是这样的:www.root.com/es/sobre-nosotros。
我有一个路由前缀设置如下: [RoutePrefix("en", TranslationKey = "Home")]
然后,我创建了一个程序,将 XML 文件中的值读取到 FluentTranslationProvider 中。注册我的路线的代码如下所示:
它似乎正在工作,因为我可以访问我的 Routes.axd 页面并查看以下内容:http: //imm.io/nm7Z
稍后在我的页面中,我的代码显示我的 CurrentCulture 设置为 es-AR,但是当我调用 URLHelper 类构建 url 时,它只构建默认的英文版本,不会给我西班牙版本。谁能告诉我为什么会这样?我不能为我的数字的生活解决这个问题。
asp.net-mvc - 如何使用可选的查询字符串参数测试 MVC 路由
我有这个控制器方法:
我正在尝试使用 MvcContrib 路由测试对其进行测试:
但是,它返回此错误。
失败:MvcContrib.TestHelper.AssertionException:参数“sortby”的值不匹配:预期为“”但为“”;在名为“sortby”的路由上下文操作参数中找不到值 - 您的匹配路由是否包含名为“sortby”的标记?
我错过了什么?
c# - AttributeRouting 中的路由歧义
我正在尝试在两种不同的操作方法上创建两条不同的路线,如下所示:
问题是当我导航到 /project/create 时,我被路由到 Details 页面,该页面失败,因为 projectId 不是 int。
我意识到我可以将 Details 路由更改为类似的东西,/project/{projectId}/details
但我希望它以另一种方式工作。
另外一个解决方案可能是将 projectId 设为一个字符串,并在 projectId == "create" 的情况下在内部重定向到 Create 操作,但这会让人感觉很糟糕。
我为此使用AttributeRouting 。
asp.net-mvc-4 - AttributeRouting:为什么是我的 POST,而不是我的 PUT 路由?
我创建了一个新的 ASP.Net MVC4 解决方案来使用新的 Web API 功能。我有一个从 ApiController 继承的控制器,并且我正在使用AttributeRouting 项目(也许最好在这里解释)来设置我的路由。
我为 POST 设置了以下方法:
当从Fiddler调用它时,我可以在 Visual Studio 2012 中调试它,并看到一切都按预期工作。我可以看到 id 是正确的,并且 json 会自动正确序列化到我的 BankRequest 对象中。一切都很好,我想。GET 也可以按预期工作。
然后我有一个类似的 PUT 方法:
问题是我在调用它时收到 HTTP 404 Not Found 消息。我所做的只是发送完全相同的 url 和 json,只是从 POST 更改为 PUT。我在 Fiddler 中所做的只是从 POST 更改为 PUT,所以我的 url 和 json 被保留了。当我切换回 POST 时,它也可以正常工作。我不知道是花哨的 AttributeRouting 不起作用还是其他什么不正确。
有谁知道为什么?
请注意,我正在设置别人定义的 API,所以我必须支持 PUT。
javascript - 为什么使用 AttributeRouting 时在 JavaScript 中使用 @Url.Action 生成的链接不是小写的?
我在 JavaScript 函数中有这段代码:
Membership
是一个Area
。我T4MVC
用来引用控制器和动作名称以避免魔术字符串... :)
此JavaScript
代码是View
该Membership
区域的一部分。
UserController
是这样装饰的:
Action
方法是这样的:
我在链接中获得的路线是这样的:
我期望它是:
所以我的问题是:为什么链接不是小写的,因为应用程序中的所有其他链接都是用小写字母生成的?这不支持还是我忘记了一些与AttributeRouting或区域设置相关的配置?
c# - 尝试使用 WebAPI 时出现“找不到与名为‘SampleSlashBaseService’的控制器匹配的类型”
我有一个名为 SlashBaseService 的基础 ApiController 的 webapi 项目:
生成的 dll 用于 WebForms 项目,因此我还有一个 WebActivator 类,其中包含以下代码来生成路由:
我在一个单独的程序集中也有一个测试服务:
所有非常简单的东西。问题是当我尝试转到其中一个生成的 url 时,我收到以下消息:
找不到与名为“SampleSlashBaseService”的控制器匹配的类型。
/routes.axd 中的路由列表看起来也正确。
asp.net-mvc-4 - 当我尝试使用字符串时,MVC AttributeRouting 总是给出 404
我正在使用从 NuGet 安装的这个包。
我有一个看起来像这样的方法:
我这样引用:
结果是这样的:
但它从来没有进入我的方法,并且总是返回 404s。
为什么?它正确地反转了 URL,那么为什么它在向它发出请求时不匹配呢?
asp.net-mvc - 如何在 AttributeRouting 中捕获所有以 /X 开头的请求
网址:/X?take=1&skip=4
[GET("X/{request:alpha?}", IsAbsoluteUrl = true)]
[GET("X{request:alpha?}", IsAbsoluteUrl = true)]
[GET("X{request:alpha*}", IsAbsoluteUrl = true)]
不起作用。