我已在我的项目(新闻网站)中成功实施了路由功能:
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。
非常感谢提前
答案 0 :(得分:0)
AFAIK框架中没有内置的功能,使url“漂亮”。你必须实现自己的URL重写标题。
在保存实体时,只需使用一个功能来替换你需要的功能(''带'_'或示例),然后使用UrlEncode。 您也可以使用正则表达式一次性完成替换。