问题标签 [asp.net-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 投票
7 回答
68173 浏览

asp.net-mvc - ASP.NET MVC,Url 路由:最大路径 (URL) 长度

情景

我有一个应用程序,我们在其中采用了良好的旧查询字符串 URL 结构:

并将其更改为路径结构:

我们正在使用 ASP.NET MVC 和(自然) ASP.NET 路由。

问题

问题是我们的参数是动态的,并且(理论上)我们需要适应的参数数量没有限制。

这一切都很好,直到我们被以下火车撞到:

HTTP 错误 400.0 - 错误请求 ASP.NET 在 URL 中检测到无效字符。

当我们的 URL 超过一定长度时,IIS 会抛出这个错误。

坚韧不拔

这是我们发现的:

这不是 IIS 问题

IIS 确实有最大路径长度限制,但上述错误不是这个。

学习 dot iis dot net 如何使用请求过滤部分“基于请求限制的过滤”

如果路径对于 IIS 来说太长,它会抛出 404.14,而不是 400.0。

此外,IIS 最大路径(和查询)长度是可配置的:

这是一个 ASP.NET 问题

经过一番摸索:

IIS 论坛主题:ASP.NET 2.0 的最大 URL 长度? http://forums.iis.net/t/1105360.aspx

事实证明,这是一个 ASP.NET(嗯,确实是 .NET)问题。

问题的核心是,据我所知,ASP.NET 无法处理超过 260 个字符的路径。

棺材上的钉子是菲尔·哈克本人证实的:

Stack Overflow ASP.NET url MAX_PATH 限制问题 ID 265251

问题

那么问题是什么?

问题是,这个限制有多大?

对于我的应用程序来说,这是一个交易杀手。对于大多数应用程序来说,这可能不是问题。

披露呢?没有任何地方提到过 ASP.NET 路由,我从来没有听说过这个限制。ASP.NET MVC 使用 ASP.NET 路由这一事实使这种影响更大。

你怎么看?

0 投票
2 回答
270 浏览

asp.net-mvc - 忽略 ASP.NET MVC 中的路由会导致 200 而不是 404

我们有表单的 URL

如果我们不小心将图像的相对 URL 写入 html(比如src="imgs/img1.gif"),这会导致浏览器发出以下请求:

它被路由到控制器,但随后无法解析为操作方法。

这很好,除非我们宁愿使用路由来防止这种情况发生(所以 TempData 不会被清空等等)。

但是,如果我们设置一个自定义约束来阻止这种情况发生(使用正则表达式),我们会得到一个 200 和一个空响应,而不是预期的 404。有什么想法吗?

0 投票
2 回答
648 浏览

asp.net - ASP.NET url 路由,默认路径

我预计这也会像http://localhost/那样映射默认主页,但它没有被命中。

问题当然是为什么不呢?我想将根映射到其他页面。

0 投票
1 回答
948 浏览

asp.net - ASP.NET MVC:路由层次结构 URL

我该如何为此进行路由?

网址:/category/main/sub//category/main/sub1/subsub/

我希望/main/sub//main/sub1/subsub/作为 CategoryController 的 Index 操作方法中的参数。

0 投票
1 回答
114 浏览

asp.net - 是否可以将 URL 路由用于以下目的?

我有一个正在从经典 asp 转换为 asp.net 网络表单的网站。该网站的旧版本维护为单独的网站版本,一个用于美国,一个用于加拿大。

美国版位于域的根目录,加拿大版位于名为“canada”的文件夹中。

该应用程序的新 asp.net 版本,决定不必维护该站点的两个不同版本,并将其合并到一个站点中。

但是,我想知道是否可以利用 URL 路由来翻转尝试通过加拿大子文件夹访问该站点的任何人,他们只使用常规站点,只是将他们的文化设置为“en-CA”。

换句话说,旧网站的结构如下:

新站点将仅位于根域中,并且将设置会话的文化。

我想如果有人通过加拿大子文件夹访问该站点,我想在 URL 中维护该加拿大子文件夹,但实际上在该文件夹中没有网站的物理副本。

0 投票
1 回答
704 浏览

asp.net - IIS 6.0 中根目录上的 ASP.NET URL 路由

我在运行 IIS 6.0 的 ASP.NET Web 应用程序上启用了路由,使用

RouteTable.Routes.MapPageRoute("Simple", "{testvalue}", "~/Test.aspx"); 在 Global.aspx.cs

当我使用http://www.MyDomain.com/Hello时,这很好用,但是当我使用http://subdomain.mydomain.com而不是加载配置的默认页面(default.aspx)时,它会尝试路由请求并在我们使用表单身份验证时发送到 login.aspx 页面。

关于如何在根目录启用路由的任何建议?

0 投票
3 回答
736 浏览

asp.net-mvc - ASP.NET MVC 层次结构 URL 路由

我有个问题

我的路线在分层类别之后有一个额外的参数。

/2009/世界/亚洲/08/12/bla-bla-bla

asp.net mvc 不支持这个,因为我的路由应该是

{year}/{*category}/{month}/{day}/{name}

我尝试使用约束,例如

但我找不到任何解决方案。

有意见吗?

谢谢

0 投票
1 回答
594 浏览

asp.net - ASP.NET Routing (3.5) - 如何处理多个 TLD 域?

是否可以有一个 asp.net Web 应用程序通过 asp.net 路由处理来自两个域的请求?每个语言版本都需要一个指向同一个应用程序的 TLD 域

  1. 如果请求来自 domain1.de 或 domain2.com,如何设置识别路由?
  2. 如何配置域 DNS 以使其正常工作?

提前致谢!

0 投票
3 回答
2514 浏览

asp.net-mvc - ASP.NET 路由传递字符串值

我正在尝试在基于 ASP.NET MVC 的网站上创建一个页面,其中一个页面允许通过用户名而不是 ID 进行选择。我会认为路线需要是这样的:

但是每当我使用 HTML.Actionlink 时,我都会得到http://mysite.com/Customer/Details?username=valuehere。我考虑了一条通用路线,例如:

但我想当它错误地应用这两者的哪条路线时会引起更多的问题。

0 投票
2 回答
1735 浏览

asp.net-mvc - 使用 ASP.NET MVC 的空查询字符串参数

是否可以使用 ASP.NET MVC 添加“空”查询字符串参数?我需要以某种方式使用以下网址生成以下网址Html.ActionLink

/首页/索引?foo

但是,这Html.ActionLink("Index", "Index", new {foo = ""})将输出

/首页/索引

这可能吗?