没有名称的 ASP.NET 网页,例如 ***?
Posted
技术标签:
【中文标题】没有名称的 ASP.NET 网页,例如 ***?【英文标题】:ASP.NET webpages without names, like ***? 【发布时间】:2010-10-10 22:12:56 【问题描述】:上面提到的***只是一个例子,但是如果你在上面看一下ask的URL是
http://***.com/questions/ask
这意味着 /ask 是一个子目录,但他们也为特定的问题页面执行此操作。您如何在 .NET 中对此进行编码?
与其说是代码问题,不如说是技术问题。我知道这对 SEO 来说非常有用,但是您如何创建一个站点以使每个“页面”都是它自己的目录?动态的。
你有模板还是隐藏重定向???
怎么样? :)
【问题讨论】:
【参考方案1】:称为 URL 重写:
Url Rewriting with ASP.NET
MSDN: URL Rewriting in ASP.NET
编辑:正如@Justice 指出的,*** 使用Routing。
【讨论】:
如果你要投反对票,不如留言说明原因? 我也支持你。那些关于 SO 是用什么构建的愚蠢答案是什么?您的回答直接回答了问题。 非常感谢...这两篇文章很棒。 Argh...我的托管服务器仅在 IIS6 上...而且我无权安装 ISAPI 过滤器。【参考方案2】:*** 使用 .NET 3.5 SP1 附带的称为路由的东西。路由是许多 MVC 框架的流行特性,例如 ASP.NET MVC、Ruby on Rails 以及许多 Python 和 php 框架。
【讨论】:
【参考方案3】:Stack Overflow 是使用 ASP.NET MVC 构建的,它使用了一种称为路由的技术,请参阅:
What Was Stack Overflow Built With?
和Routing
【讨论】:
-1 您完全错过了问题的重点。他没有问 SO 是如何构建的……事实上,它明确指出 SO 仅用作示例。他的问题是关于如何重写 url 使其看起来好像是一个目录......到目前为止唯一正确的答案是来自 Mitch。 好的,所以我的回答不如 Mitch 的完整,也没有按照 Just 的要求特别提及路由,但它仍然回答了关于如何(至少以一种方式)“创建一个网站,以便每个“page”是它自己的目录”【参考方案4】:堆栈溢出使用ASP.net MVC
MVC 使用 URL + Query String 来确定内容,所以它不像是指向特定页面的 URL,而更像是一些要显示的数据属性的分层路径
例如https://***.com/users/[Put这里的用户ID]/[把用户名放在这里]
提示网站显示路径中指定 ID 的 USER(在这种情况下,用户名可能只是为了踢球),而不是仅为该用户创建的特定页面。
【讨论】:
发帖人并没有问 SO 是用什么写的。【参考方案5】:我已经看到通过简单地为每个网页创建一个文件夹然后让每个文件夹包含一个 Default.aspx 文档来实现这一点(假设 Default.aspx 在 IIS 中设置为默认文档,这是默认设置)。然后,您可以导航到站点上的任何文件夹,而无需指定页面 (Default.aspx)。
对于动态部分,我使用过这种方式的 CMS 系统,Default.aspx 页面只是从一些主模板继承而来,CMS 系统利用 ASP.NET 渲染引擎来动态完成网页。
使用文件夹可能会使网站结构有点繁重,但它是一种从浏览器中删除页面名称的简单方法。
这就是我构建网站并避免使用页面名称的方式...例如http://www.innovaapps.net/Blog 只需打开 default.aspx 页面,而无需指定页面名称。
【讨论】:
以上是关于没有名称的 ASP.NET 网页,例如 ***?的主要内容,如果未能解决你的问题,请参考以下文章
关于在 ASP.Net 中使 javascript 对象名称唯一的想法?