问题标签 [routing]

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 投票
3 回答
4118 浏览

asp.net-mvc - ASP.NET MVC 页面/子页面路由

我试图弄清楚如何处理以下情况。一般来说,我在一个表中有一堆记录。所有这些都有 ID 和 ParentID 字段以形成树。

现在,我希望我的 Page3 和 Page6 的路线分别是一样/Page1/Page6/Page3/Page5/Page6。也就是说,我想在 URL 中包含所有父母。

如何设置我的控制器动作/路由以实现上述结果?

编辑:忘了提到上述结构将是动态的 - 可以添加/删除/更改父节点等。

0 投票
3 回答
3582 浏览

asp.net-mvc - ASP.Net MVC Html.ActionLink() 问题

我正在使用 MVC beta 编写一个简单的应用程序来理解 ASP.Net MVC。该应用程序是一个带有标签的简单照片/视频共享站点。我正在处理 MVC 骨架项目。我在导航栏中添加了一些 Html.ActionLink(),但是我在一个地方添加的 Html.ActionLink() 之一出现问题。

我希望 ~/Tags 显示数据库中的所有标签,我希望 ~/Tags/{tag} 显示所有带有 {tag} 标记的文件的列表。这按预期工作,但是当我关注 ~/Tags/{tag} 时,它会将导航栏中的 Html.ActionLink() 更改为与 ~/Tags/{tag} 链接相同,而不仅仅是指向 ~ /标签。我不明白为什么当我跟随 ~/Tags/{tag} 时导航栏中的 ActionLink() 会发生变化。如果我导航到项目中的其他链接,ActionLink() 将按预期工作。

我有这样的操作链接和路由设置。我的 TagsController 有这个 Index 动作。整数?用于分页控制。我有两个视图,一个称为全部,一个称为详细信息。我究竟做错了什么?

0 投票
6 回答
20724 浏览

.net - “没有找到您要查的资源。” url 末尾有“点”时出错

我正在使用 ASP .NET MVC Beta,当我使用这个结尾有一个“点”的 url 时,我得到了 HTTP 404(找不到资源)错误:

http://localhost:81/Title/Edit/Code1

如果我删除最后的点或点在中间的某个地方,我不会收到错误消息。

我试图调试,但我在 MvcHandler 中的 ProcessRequest 之前从“System.Web.CachedPathData.GetConfigPathData(String configPath)”得到错误。

网址末尾不允许“点”吗?或者有没有办法修复路由定义来处理这个url?


例如:我有一个名为 Detail1 [Id(integer), Code(string), Description(string)] 的表,它通过它的 Id 列与 Master1 具有 FK 关系。每当我选择 Master1 的记录时,我也会选择它的 Detail1 记录来获取它的 Code 字段。为了不每次都进行此连接(因为通常不仅有一个细节,还有多个),我选择不使用 Id 列并制作 Detail1 的代码 PK。

但是当我摆脱 Id 并使用 Code as PK 时,我的路线也开始使用 Code 字段,例如:Detail1\Edit\Code1

此代码可以包含任何内容或结尾,包括 DOT。在某些情况下,我可以在最后禁止 DOT,但有时它真的很有意义。

而且我也看过这篇文章,路线可以非常灵活,所以我不认为我的很奇怪。

所以这就是为什么我做一些如此不标准的事情。有什么建议么?

还有为什么在 url 的末尾有一个 DOT 很奇怪?

0 投票
2 回答
5071 浏览

asp.net-mvc - asp.net mvc routing when passed parameter contains dot

I have very basic routing:

The problem is that it works perfectly in all simple cases, like www.xxx.yy/pages/filter/test". As soon as I add dot "." to {id} part it fails, returning 'The resource cannot be found.' It happens for www.xxx.yy/pages/filter/test.

Any suggestions?

0 投票
5 回答
16129 浏览

ruby-on-rails - Rails:如何访问 RESTful 助手?

我正在尝试阅读Rails 路由指南,但我陷入了第3.3节:

创建 RESTful 路由还会在您的应用程序中提供一堆帮助程序

然后他们列出了一些助手,如photos_url,photos_path等。

我的问题:

我在哪里可以找到“可用”助手的完整列表?

有没有办法在控制台中调用助手?我创建了一个应用程序,然后使用script/console. 我试图像这样在控制台上调用其中一个助手:

但得到:

0 投票
2 回答
2735 浏览

asp.net-mvc - 为什么 ASP.NET MVC URL 路由找不到我的控制器?

在 RegisterRoutes 方法的 Global.asax.cs 文件中,我把

然后我创建了这个控制器:

但是在我的浏览器中,当我去:

我得到一个404。

我还需要定义什么才能让路由找到我的控制器?

0 投票
2 回答
1088 浏览

asp.net - 对于不太常见的场景,ASP.NET MVC 路由的最佳方式是什么?

更新 - 2009 年 1 月 21 日:

我能够使其正常工作的唯一方法是创建具有附加路径信息的路由......换句话说,路由需要而不是http://company.com/myDepartment/myTeam/action/id构建以处理http://company.com/department/myDepartment/team/myTeam等路径。

结束更新 - 2009 年 1 月 21 日:

我有两个可能的 URL 约定,我需要能够路由到相同的控制器/视图

http://team.department.company.com/Action/id

http://department.company.com/Action/id

http://company.com/Action/id

以上内容很容易处理,因为部门/团队别名位于 Uri 的主机名中。

但是,当我想实现以下内容时,我无法让它令人满意地工作:

http://company.com/department/team/Action/id

http://company.com/department/Action/id

http://company.com/Action/id

以下是我定义的路线:

我现在遇到的问题是我的控制器中的每个操作方法都需要一个 departmentId 和 teamId 参数。我真的更希望能够“预处理”我在 OnActionExecuting 事件处理程序中获得的基本控制器类中的部门/团队 ID 值。我在吠叫错误的树吗?我需要实现自己的 Mvc 路由处理程序吗?

注意:这是替换旧版应用程序,需要保留/维护 URL 格式。

编辑: 首先,感谢到目前为止的回复。根据我收到的回复,我认为我在某一点上还不够清楚。这是(松散地)我的控制器的样子:

但是,使用此方案,所有从此类继承的控制器(并使用上面列出的路由进行适当的路由)在其操作处理程序中都期望(我认为是冗余/不需要的)参数。我想避免让每个处理程序都需要这些“额外”参数并且正在寻找建议。

谢谢!-乔治

0 投票
1 回答
1405 浏览

asp.net-mvc - 将 MVC Beta Web 应用程序移动到虚拟目录会剥离所有 /Content 资源

我在 win2008 服务器上使用 VS2008 开发了一个非常不错的 MVC Beta 应用程序。当我试图将它部署到 IIS6 虚拟目录时,我的麻烦就开始了。在目标 win2003 服务器上安装 MVC Beta 后,我能够从虚拟目录中显示应用程序,但所有图像和 css 属性都丢失了。占位符建议图像应该位于根网站,而不是应用程序运行的虚拟目录。

实际路径:

而不是:

如果我将应用程序安装在它自己的网站(根)中,一切正常。我可以通过将 Web 属性设置为“使用 Visual Studio 开发服务器”/特定端口/并添加虚拟路径来在 VS2008 中复制它。

我还可以通过将项目的 Web 属性设置为“使用本地 IIS Web 服务器”并创建一个虚拟目录来复制它。

关于 mvc url 路由,我显然缺少一些东西。这里的任何指导将不胜感激。

0 投票
1 回答
2077 浏览

asp.net-mvc - ASPNET MVC:找出引用者路径的方法(原文如此)?

我的控制器上有一些 POST 操作,这些操作来自一对 GET 操作。当验证失败时,我想呈现 POST 来自的操作的视图。例如:

~/accounts POST 到 ~/accounts/disable - 在验证错误时呈现“索引”视图 ~/accounts/profile POST 到 ~/accounts/disable - 在验证错误时呈现“profile”视图

我可以从服务器变量中获取引用者(原文如此)并对其进行解析以找出操作,但希望要么有内置的东西可以满足我的需求,要么其他人已经这样做了,我可以从中借鉴.

似乎 ControllerContext.RouteData 属性只有关于当前请求的信息,而不是引用(原文如此)请求......?

我正在使用 ASP.NET MVC 测试版。

0 投票
4 回答
26639 浏览

asp.net-mvc - ASP.NET MVC QueryString 默认覆盖提供的值?

使用 ASP.NET MVC Preview 5(尽管在 Beta 版中也尝试过),路由中的查询字符串默认值似乎覆盖了在查询字符串中传递的值。一个repro是写一个这样的控制器:

路由映射如下:

然后使用这个相对 URI 调用它:

我看到的跟踪输出是:

所以换句话说,为路由设置的默认值总是传递给方法,不管它是否实际在查询字符串中提供。请注意,如果查询字符串的默认值被删除,即路由映射如下:

然后控制器按预期运行,并将值作为参数值传入,给出跟踪输出:

这在我看来像一个错误,但我会发现像这样的错误仍然存​​在于 ASP.NET MVC 框架的 beta 版本中,这让我感到非常惊讶,因为具有默认值的查询字符串并不完全是一个深奥或边缘情况的功能,所以几乎可以肯定是我的错。任何想法我做错了什么?