【问题标题】:Product Name not changing in URL when ID is modified ASP.Net Webform修改 ID 时,产品名称在 URL 中没有更改 ASP.Net Webform
【发布时间】:2021-10-12 21:52:19
【问题描述】:

我有一个框架 4.5 的 ASP.Net Webforms 应用程序。

我有一个显示产品的页面。网址是 /product/Toy1/toy1_ID。

如果我将 ID 部分,即 toy1_ID 更改为 toy2_ID,页面会显示 toy2,但 URL 保持不变 /product/Toy1/toy2_ID。

如果 ID 部分发生更改,是否有办法在 URL 中使用 Toy2(产品名称)更新 URL

必填网址 = /product/Toy2/toy2_ID

如果 ID 改变了,那么产品名称应该在 URL 中改变

【问题讨论】:

  • 您确定这是网络表单吗?页面以 .aspx 结尾?
  • 除非您在 WebForms 中进行某种 URL 重写,否则这看起来确实像 MVC 路由。
  • 你能显示你当前的 URL 重写吗?
  • 您是否在后面的代码中更改了该 ID?由于您已经在回帖中,因此请考虑仅使用 response.write("new url here") 代替后面的代码,只需更改 id 的值。
  • @wazz - asp.net(甚至是 web 表单)项目默认为我们所说的“友好 URL”,并且这个默认设置是开箱即用的——即使对于 asp.net + web 表单也是如此。确实,文件扩展名是 aspx,但我们往往甚至不再键入、显示或什至不再使用它——这种情况已经有一段时间了。所以现在附加的“/”实际上变成了参数。

标签: asp.net url url-rewriting webforms


【解决方案1】:

这个答案可能比必要的更暴力,但在我们的一个网站中,我们有一个类似的 URL 重写,我们解决这种情况的方法是,在 productpage.aspx.cs 代码中,我们得到了 id和 URL 中的名称,并检查 url 名称是否与数据库中该 id 的名称匹配。如果没有,我们为该 id 构建一个具有正确名称的 url 并执行 301 重定向。

【讨论】:

  • 我也在 productpage.aspx.cs 中进行重写。检查并对其进行检查然后重定向是有意义的。我会尝试一下,如果可行,然后将您的建议标记为答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
相关资源
最近更新 更多