问题标签 [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 回答
1504 浏览

c# - 尝试使用 AttributeRouting 创建默认 ASP.NET MVC 路由

我刚刚开始在我的 ASP.NET MVC3 应用程序中使用AttributeRouting 。我一开始就使用 -no- 控制器。(新的空 MVC3 应用程序)

然后我做了一个区域。(称为Documentation:)

然后我添加了一个控制器(称为DocumentationController:)

然后我做了这个。。

以下路线有效:/documentation/index

但是我怎样才能使这两条路线起作用?

1 - /<-- (默认路由/未指定特定路由) 2 - /documentation<-- 未添加“索引”子路由部分。

这可以用AttributeRouting完成吗?

更新:

我知道如何使用默认的 ASP.NET MVC3 结构等来做到这一点。我想做的是通过 AttributeRouting 来解决这个问题。

0 投票
1 回答
1877 浏览

c# - 使用 AttributeRouting 在 URL 中隐藏区域

我们正在使用 Areas 对用 ASP.NET MVC3 编写的 API 进行版本控制,并使用 AttributeRouting 来定义我们的路由。

现在我们有一个“v1”区域,它是我们的第一个 API 版本。当我们到达 v2 时,我们将复制 v1 并进行修改。

我想对网站使用相同的版本控制,并且我不希望 /v1 出现在路由中。

我的问题是,如何在我的 URL 中隐藏区域以便我可以调用

代替

这是我的控制器中的内容

这是我尝试访问 mywebsite.com/ 时得到的结果

错误

提前致谢!

0 投票
1 回答
1067 浏览

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 时,它只构建默认的英文版本,不会给我西班牙版本。谁能告诉我为什么会这样?我不能为我的数字的生活解决这个问题。

0 投票
2 回答
1225 浏览

asp.net-mvc - 如何使用可选的查询字符串参数测试 MVC 路由

我有这个控制器方法:

我正在尝试使用 MvcContrib 路由测试对其进行测试:

但是,它返回此错误。

失败:MvcContrib.TestHelper.AssertionException:参数“sortby”的值不匹配:预期为“”但为“”;在名为“sortby”的路由上下文操作参数中找不到值 - 您的匹配路由是否包含名为“sortby”的标记?

我错过了什么?

0 投票
2 回答
682 浏览

c# - AttributeRouting 中的路由歧义

我正在尝试在两种不同的操作方法上创建两条不同的路线,如下所示:

问题是当我导航到 /project/create 时,我被路由到 Details 页面,该页面失败,因为 projectId 不是 int。

我意识到我可以将 Details 路由更改为类似的东西,/project/{projectId}/details但我希望它以另一种方式工作。

另外一个解决方案可能是将 projectId 设为一个字符串,并在 projectId == "create" 的情况下在内部重定向到 Create 操作,但这会让人感觉很糟糕。

我为此使用AttributeRouting 。

0 投票
0 回答
421 浏览

asp.net-mvc-4 - AttributeRouting:为什么是我的 POST,而不是我的 PUT 路由?

可能重复:
ASP.NET Web API 仅在某些服务器上为 PUT 返回 404

我创建了一个新的 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。

0 投票
1 回答
2632 浏览

javascript - 为什么使用 AttributeRouting 时在 JavaScript 中使用 @Url.Action 生成的链接不是小写的?

我在 JavaScript 函数中有这段代码:

Membership是一个Area。我T4MVC用来引用控制器和动作名称以避免魔术字符串... :)

JavaScript代码是ViewMembership区域的一部分。

UserController是这样装饰的:

Action方法是这样的:

我在链接中获得的路线是这样的:

我期望它是:

所以我的问题是:为什么链接不是小写的,因为应用程序中的所有其他链接都是用小写字母生成的?这不支持还是我忘记了一些与AttributeRouting或区域设置相关的配置?

0 投票
5 回答
29485 浏览

c# - 尝试使用 WebAPI 时出现“找不到与名为‘SampleSlashBaseService’的控制器匹配的类型”

我有一个名为 SlashBaseService 的基础 ApiController 的 webapi 项目:

生成的 dll 用于 WebForms 项目,因此我还有一个 WebActivator 类,其中包含以下代码来生成路由:

我在一个单独的程序集中也有一个测试服务:

所有非常简单的东西。问题是当我尝试转到其中一个生成的 url 时,我收到以下消息:

找不到与名为“SampleSlashBaseService”的控制器匹配的类型。

/routes.axd 中的路由列表看起来也正确。

0 投票
0 回答
704 浏览

asp.net-mvc-4 - 当我尝试使用字符串时,MVC AttributeRouting 总是给出 404

我正在使用从 NuGet 安装的这个包。

我有一个看起来像这样的方法:

我这样引用:

结果是这样的:

但它从来没有进入我的方法,并且总是返回 404s。

为什么?它正确地反转了 URL,那么为什么它在向它发出请求时不匹配呢?

0 投票
1 回答
229 浏览

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)]

不起作用。