我的页面代码如下所示:
<asp:Button ID="btnSearch" runat="server" Text="Search" onclick="btnSearch_Click"/>
我的方法是这样的:
protected void btnSearch_Click(object sender, EventArgs e)
{
var value = lblGraphicNameValue.Text.ToString();
Response.Redirect("Search.aspx?txtGraphicName=" +
value);
}
目前,当用户按下“搜索”按钮时,页面会刷新并加载 Search.aspx 页面。我想要的是在新窗口中打开 Search.aspx。我看过使用 Window.Open,但我不确定这是否是正确的路线,或者我是否可以使用相同的方法来传递我的变量(查询字符串)。有人能指出我正确的方向吗?我的作品有效,我只希望它在新页面中打开,同时保留上一页。
编辑:我应该提到我不能使用 javascript(安全环境,每个浏览器都禁用了 javascript)。
从我正在阅读的内容来看,这似乎表明在没有 javascript 的情况下,从 asp.net 页面中打开一个新网页并传入参数是行不通的?这是正确的吗?
最佳答案
下面这段代码最终完全满足了我的需要:
<a href="<%= this.ResolveUrl("Search.aspx?id=" + lblGraphicNameValue.Text.Remove(lblGraphicNameValue.Text.Length -4)) %>"
target="_blank">Search Related</a>
这段代码做了三件事:
- 1) 在新页面中打开搜索。
- 2) 将搜索值截断四 字符(我只需要搜索字符串的一部分)
- 3) 传入 新页面的参数。
这完全满足了我的需要,而无需借助自定义类或 javascript,尽管它确实让我不得不使用链接而不是按钮。
关于c# - 使用 Window.Open 而不是 Response.Redirect 打开新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17679565/