【发布时间】:2013-08-19 05:26:40
【问题描述】:
谁能告诉我我们如何在asp.net中实现自定义URL重写
我当前的网址如下所示:
www.domainname.com/News/default.aspx?newstitle=todays latest news
现在我想重定向到以下网址:
www.domainname.com/News/todays-latest-news
请建议我如何实现同样的目标。
【问题讨论】:
标签: asp.net
谁能告诉我我们如何在asp.net中实现自定义URL重写
我当前的网址如下所示:
www.domainname.com/News/default.aspx?newstitle=todays latest news
现在我想重定向到以下网址:
www.domainname.com/News/todays-latest-news
请建议我如何实现同样的目标。
【问题讨论】:
标签: asp.net
将此添加到 global.asax
using System.Web.Routing; //top of the page
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("", "news/{news}", "~/news/default.aspx");
}
然后你可以在 default.aspx 中获取新闻标题,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (this.RouteData.Values.Count > 0)
{
string newstitle = this.RouteData.Values[0].ToString();
}
}
【讨论】:
使用名为 asp.net 路由的概念来实现您的任务, 这里有几个例子可以更好地理解
http://www.codeproject.com/Articles/77199/URL-Routing-with-ASP-NET-4-0
http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx
【讨论】:
您可以为此目的使用 URLRewriter.Net。它很容易集成到 asp.net 项目中,而且它是开源的。将 urlRewriter.Net 的 dll 文件添加到您的项目中,并在您的 web.config 文件中设置重写规则。尽管在将它与 ajax 回发页面一起使用时要小心。如果您遇到 ajax 回发问题,请在 Raw url 中。
【讨论】: