2

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

 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 回答