【问题标题】:How to use ASP.net Routing to make url friendly如何使用 ASP.net Routing 使 url 友好
【发布时间】:2014-11-14 13:53:33
【问题描述】:

我有以下页面:

Default.aspx
find_provider.aspx --> (has a search which takes the user to each provider page) --> provider.aspx?id={####}
news.aspx --> (has links to each news) --> article.aspx?id={####}
health.aspx --> (has links to each event) --> event.aspx?id={####}
patinfo.aspx --> (has links to each info) --> info.aspx?id={####}

虽然页面好记但ID不好记。

例如,在find_provider.aspx进行搜索时,有三个结果进入provider.aspx页面,每个结果都有一个唯一的ID(未来会添加更多):

Bolt, John MD --> provider.aspx?id=90
Barry, Brent MD --> provider.aspx?id=1090
Carson, John MD --> provider.aspx?id=10

如何设置我的网站以定义每个页面的 ID 以使其用户和搜索友好?

例如:

Bolt, John MD --> provider.aspx/johnbolt
Barry, Brent MD --> provider.aspx/brentbarry
Carson, John MD --> provider.aspx/johncarson

此外,article.aspxevent.aspxinfo.aspx 等也是如此......

我在后端使用的是 Ektron CMS,而不是 MVC,如果有帮助的话。

我研究了 ASP.net 路由,但不确定如何实现它,因为我对这个过程完全陌生。

【问题讨论】:

    标签: c# asp.net url-rewriting ektron


    【解决方案1】:

    在您使用 Ektron 时,您是否尝试过使用别名功能?这允许在 CMS 中创建友好的 URL。有不同类型的别名可用,请参阅here 了解更多信息。

    可以通过为用户创建自动别名规则来为用户的个人资料创建友好的别名。

    或者,您可能正在使用 Smartforms 来存储有关您的提供商的信息。如果是这样,您可以通过将规则映射到您的文件夹结构或分类来为内容创建自动别名。

    您可以在此处的工作区中找到所有这些设置:设置 > 配置 > URL 别名。默认情况下,别名是关闭的,因此您需要在 URL 别名部分的设置页面中启用所需的别名类型。

    【讨论】:

    • 唯一的问题是如果内容标题有逗号:Matt, Burns MD,它将是Matt,_Burns_MD.aspx。除了我想删除逗号并将其设置为Matt_Burns_MD.aspxMattBurnsMD.aspx 之外,哪个有效。我该怎么做?我更新了我的问题给你看。我找不到要替换为 nothing,
    • 我相信您可以为每个要替换的字符设置字符替换。它位于您配置别名的页面底部。您应该能够用空字符串替换逗号。
    • 糟糕的是,我认为它接受了一个空字符串。我能提出的唯一其他建议是强制从内容标题中删除逗号。这可以使用由 OnAfterPublish 事件触发的 CMS 扩展来实现。如果您仍然需要带逗号的标题,您可以在 Smartform 中创建一个附加字段以将其保存为该格式。
    • 否则,可以手动创建别名,以便您可以设置任何您喜欢的值 - 但这可能不是一个好主意,具体取决于我们谈论的项目数量。
    • 可能需要更改内容标题,或者我想知道是否有其他方法可以使用。但你是对的,自动别名是我需要的:)
    猜你喜欢
    • 2010-12-17
    • 1970-01-01
    • 2023-03-26
    • 2010-09-07
    • 2013-01-20
    • 2013-02-14
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多