如何使用特定的查询字符串值刷新当前页面 (c#)

3
我在删除特定产品时遇到了一个简单的错误通知问题。
我有一个名为 products.aspx 的页面,有 2 个类别:
- 手机(cat 1) - 网络(cat 2)
当我从特定类别中删除一个特定产品时,会弹出一个通知“您的产品已被删除...”,然后 2 秒后,我希望当前页面刷新,以显示新的和正确的产品数。我的问题是,当我删除产品时,我正在请求查询字符串“deleteid”,而我的查询字符串中的“categoryid”当然为 0。总之,我需要刷新“products.aspx?categoryid=2”,但请求“deleteid”时,categoryid 当然为 0。
这是我目前所拥有的,希望你能理解并帮助我......谢谢!
... listing products by category (Request.QueryString["categoryid"])
... Then deleting by id, (Request.QueryString["deleteid"])    
... and now my problem and what I have so far:

var query = Request.QueryString["deleteid"];
    if (query.HasValue())
    {
        // deleting product
        DeleteSpecificProduct(query.Int16());

        errornotification.Text += @"Your product has been deleted";

        // refreshing current page
        var categoryid = Request.QueryString["categoryid"].Int16();
        var url = String.Format("products.aspx?categoryid={0}", categoryid);
        Response.AppendHeader("REFRESH", "2;URL=" + url);
     }

//感谢

2个回答

0

让删除链接包括categoryid。例如:

<a href="products.aspx?deleteid=1&categoryid=1234">Delete Product 1</a>

如果您不想这样做,您可以解析引荐网址的查询字符串,假设从类别页面点击了删除链接。

顺便说一下,我认为您想要的是meta标签刷新,而不是http头。在页面的<head>部分中添加

<meta http-equiv="Refresh" content="2; URL=..." />

关于meta http-equiv - 你如何从后端控制它? - Jeppe Strøm
@jeppe-strom 搜索网络可以得到很多结果,请尝试访问 http://forums.asp.net/t/1518853.aspx - The Scrum Meister

0
为什么不直接使用Response.Redirect(String.Format("products.aspx?categoryid={0}", categoryid))来通知页面错误呢?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接