任何人都可以向我提供我们如何实现自定义 URL 重写的详细信息asp.net
我当前的网址如下所示:
www.domainname.com/News/default.aspx?newstitle=todays latest news
现在我想重定向到以下网址:
www.domainname.com/News/todays-latest-news
请建议我如何实现同样的目标。
任何人都可以向我提供我们如何实现自定义 URL 重写的详细信息asp.net
我当前的网址如下所示:
www.domainname.com/News/default.aspx?newstitle=todays latest news
现在我想重定向到以下网址:
www.domainname.com/News/todays-latest-news
请建议我如何实现同样的目标。
将此添加到 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 中。