首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET中实现动态页面文件名?

如何在ASP.NET中实现动态页面文件名?
EN

Stack Overflow用户
提问于 2018-08-16 00:35:00
回答 2查看 0关注 0票数 0

我希望我的网站为动态内容创建搜索引擎优化链接(而不是通过查询字符串定位数据)。是:

mysite/SomeModifiableNname.aspx

而不是

mysite/DynamicContent.aspx?entryID=2345

除了重定向请求的智能404处理程序或IIS中的自定义MIME类型处理程序之外,ASP.NET中是否有很好的解决方案?

页面文件名必须能够在运行时更改。

EN

回答 2

Stack Overflow用户

发布于 2018-08-16 08:43:20

可以使用HttpHandler,参考:http://codebetter.com/blogs/jeffrey.palermo/archive/2005/08/10/130532.aspx。

票数 0
EN

Stack Overflow用户

发布于 2018-08-16 10:15:45

在Global.asax(或通过HttpModule)中,监听BeginRequest事件并在那里应用Context.Rewrite路径:

void Application_BeginRequest(object sender, EventArgs e)
{
    string fullOrigionalpath = Request.Url.ToString();

    if (fullOrigionalpath.ToLower().Contains("/Games".ToLower()))
    {
        Context.RewritePath("Default.aspx?id=Games");
    }

}

然后,在处理这些请求的页面的OnPreInit方法上,需要再次应用重写路径,以便PostBack能够正常工作:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);

    if (Request.QueryString["id"] == null)
        return;
    if (Request.QueryString["id"].ToLower().Equals("games"))
        Context.RewritePath("Games", "", "id=Games");
}

许多URL重写模块可以更好地工作的关键是路径可以是动态的。也就是说,创建的URL可以是数据驱动的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档