2

プロジェクト (ニュース Web サイト) にルーティング機能を正常に実装しました。

 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")})%>"

生成される URL は次のようになります。

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

上記のように、URL の部分が読みにくいので、次のようにしたいと考えています。

/this_is_a_news_item/89

私は置換機能に行くことを考えました。ただし、ニュースを作成するユーザーは任意の文字列を入力する可能性があるため、置換が必要になる可能性のある他のすべての文字を考慮する必要があります。

経験豊富な開発者から、長い置換機能を使用する方法があるかどうか、またはこのルーティング シナリオで URL をフォーマットする別のソリューションがあるかどうかを知りたかっただけです。

よろしくお願いします

4

1 に答える 1

0

AFAIK there is no built in funcitonality in the framework to make url "pretty". You have to implement your own url fo rewriting the title.

In the save of your entities simply use a function that do the replaces that you need (' ' with '_' or example) and then use UrlEncode. You can also use a Regular expression to do the replacement in one go.

于 2012-04-11T05:28:45.810 に答える