【问题标题】:How do I do routing in WebForms for a CMS?如何在 WebForms 中为 CMS 进行路由?
【发布时间】:2012-01-15 18:51:26
【问题描述】:

我知道您可以在 asp.net 网络表单中创建路由,但我该如何创建一个处理我所有页面的路由,例如 mydomain.com/aboutus

我听说过自定义 iroute 处理程序,但有人真的可以给我举个例子吗?

有人可以发给我一个 C# 示例,说明我将如何处理这个问题吗?我确实有一个名为page.aspx 的文件,它将处理对CMS 的所有请求。我认为这是我需要的根处理程序。

【问题讨论】:

  • Rob,作为“回答”您的问题的人,我采用这种方法来制作我自己的快速 CMS 产品。如果您想看一下并询问我,它可能会对您有所帮助,因为您正在构建自己的。它在我的个人资料详细信息中。干杯。

标签: c# asp.net vb.net routing


【解决方案1】:

IIS 7 和 IIS 7.5 中的 URL 重写可以很好地做到这一点。您需要首先通过 Web 平台安装程序将 URL Rewrite 安装到 IIS 中。之后,你可以把它放在你的 web.config 中。

<system.webServer>
    <rewrite>
        <rules>
            <rule name="admin" stopprocessing="true">
                <match url="^admin/(.+)$" />
                <action type="Rewrite" url="/admin/{R:1}.aspx" />
            </rule>
            <rule name="pagehandler">
                <match url="^(.*)$" />
                <action type="Rewrite" url="/pagehandler.aspx?page={R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

您可以将更多不会通过 CMS 动态更改的页面放置在“页面处理程序”规则之上。 /pagehandler.aspx 将采用具有参数的页面 ID 并动态提供其内容。那是你的工作。

【讨论】:

    【解决方案2】:

    处理此问题的一种方法是通过重写 - 与 Wordpress、ExpressionEngine 和许多其他 CMS 非常相似。

    您可以将请求重新写入到 page.aspx 文件中,并将请求的“页面”作为参数并根据需要进行处理...

    mod_rewrite equivalent for IIS 7.0 有很多关于为 IIS 重写模块的信息,然后您可以研究任意数量的开源解决方案,这些解决方案将这种方法用于“漂亮”或“seo 友好”的 URL

    【讨论】:

    • 你不能用asp.net路由实现这个吗~?
    • 你可以,快速搜索购买了stackoverflow.com/questions/379558/mvc-net-routing#379823,它似乎详细介绍了自定义 IRouteHandler。我从来没有尝试过这个——我是 ASP.NET 的新手——这就是为什么我没有建议它作为答案:-)
    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2011-08-08
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多