【问题标题】:ASP.NET Routing: Formatting the URL stringASP.NET 路由:格式化 URL 字符串
【发布时间】:2012-04-23 09:29:17
【问题描述】:

我已经在我的项目(新闻网站)中成功实现了路由功能:

 Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.MapPageRoute("ndetails", "news/{title}/{id}/", "~/newsdetail.aspx")
 End Sub

然后我像这样设置 URL(数据绑定到中继器):

href="<%# Page.GetRouteUrl("ndetails", new with { .title= Server.UrlEncode(Eval("Title")), .id= Eval("NewsID")})%>"

产生的网址是这样的:

/this%20is%20a%20news%20item/89

从上面可以看出,URL 部分很难阅读,我希望它是这样的:

/this_is_a_news_item/89

我想使用替换功能。但是,由于创建新闻的用户可能会输入任何字符串,因此我必须考虑可能需要替换的所有其他字符。

我只是想从一位经验丰富的开发人员那里了解,是否可以使用长替换功能,或者在这种路由场景中是否有其他解决方案来格式化我的 URL。

在此先感谢

【问题讨论】:

    标签: asp.net routing url-routing


    【解决方案1】:

    AFAIK 框架中没有内置的功能来使 url “漂亮”。您必须实现自己的 url 来重写标题。

    在保存您的实体时,只需使用一个函数来执行您需要的替换(' ' 与 '_' 或示例),然后使用 UrlEncode。 您还可以使用正则表达式一次性完成替换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 2011-03-21
      相关资源
      最近更新 更多