是否可以使用 ASP.NET FriendlyUrls 摆脱“索引”?

Posted

技术标签:

【中文标题】是否可以使用 ASP.NET FriendlyUrls 摆脱“索引”?【英文标题】:Is it possible to get rid of "Index" with ASP.NET FriendlyUrls? 【发布时间】:2013-02-22 10:20:23 【问题描述】:

目前,我在我的 WebForms .NET 4.5 应用程序中使用(相当)新的 ASP.NET FriendlyUrls 功能来使 URL 看起来更清晰。

我想要实现的甚至是摆脱“索引”,因为它是文件夹的默认设置。

即:

http://www.some-server.com/my/folder/with/index.aspx <== Before FriendlyUrls
http://www.some-server.com/my/folder/with/index      <== What I have
http://www.some-server.com/my/folder/with            <== What I want

我尝试从内置类WebFormsFriendlyUrlResolver派生出我自己的URL解析器类,覆盖函数

public override string ConvertToFriendlyUrl(string path)

然后在注册路由时将其传递给EnableFriendlyURls 扩展方法,然后在此覆盖中剥离“索引”。

不幸的是,似乎根本没有将 ASPX 文件 URL 传递给我的派生类。

所以我的问题是:

如何使 ASP.NET FriendlyUrls 功能完全删除“index.aspx”部分,而不仅仅是“.aspx”?

【问题讨论】:

当您只浏览文件夹时会发生什么?在IIS 中添加index.aspx 作为Default Document 选项有帮助吗? 谢谢,@Vaze - 我可以用 IIS 重写的东西很好地解决这个问题,我认为只使用纯 ASP.NET FriendlyUrls 会更优雅。 【参考方案1】:

在 Webforms 中,如果您使用 Default.aspx,它将自动将该页面用作默认文件夹。

【讨论】:

谢谢。实际上,默认文档功能带有 iis,而不是 webforms。由于我想避免重复的内容,这不是我正在寻求的解决方案。 你是在 IIS 上运行这个吗? 为了开发,我使用的是 vs webdev 服务器。 没有理由将服务器设置与代码分开。事实上,ASP.NET 中的许多关键特性实际上都是 IIS 设置。

以上是关于是否可以使用 ASP.NET FriendlyUrls 摆脱“索引”?的主要内容,如果未能解决你的问题,请参考以下文章