如何在url中隐藏查询字符串参数
我有一个面板栏,里面有一些项目。当我右键点击项目,如果我选择“在新标签中打开”,我需要在新标签中打开链接。 例如。如果我的网页是 “HTTP:本地主机/我的页面” 我网格是:如何在url中隐藏查询字符串参数
名称
- ABC
- BCD
- CDE
当我点击第二项,navigateUrl将为“http:localhost/MyPage /?Name = bcd“
这工作正常。 但我想隐藏URL中的名称。有没有其他的方法,我可以将名称传递给下一页,而不会将其暴露在网址中。我可以使用会话,但不幸的是,我不能将它作为默认上下文菜单的代码编写。
你可以设置一个cookie - 这样下次用户返回时,你甚至可以将它们返回到同一页面(如果你想的话)。
您可能会发现this article有助于确定这是否适合您。
如果你需要在客户端设置cookie,那么this article应该帮助你。
您可以使用LinkButton
对象。他们将回发,然后您可以将请求重定向到所需的页面。
ASPX:
<asp:linkbutton id="lnkabcd" runat="server" text="abcd" onclick="lnkabcd_clicked"/>
C#:
public void linkabcd_clicked(object sender, EventArgs e)
{
Response.Redirect("URL OF TARGET PAGE");
}
Ofcourse这将是非常麻烦的,如果你有大量的链接。您可以使用网格(希望在您的问题中编写时使用它),并使用命令名称和命令参数属性捕获行事件。
要隐藏浏览器的地址栏中的网址,您需要进行URL重写。有关URL重写的更多信息,请访问codeproject和msdn上的这些页面。
由于@TheVillageIdiot说,url重写是一种更好的方法。但是你也可以使用cross-page posting的能力。检查出来:
标记
<asp:HiddenField ID="HiddenField1" runat="server" ClientIDMode="Static" />
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Second.aspx" Text='<%# Bind("Text") %>' OnClientClick='<%# "LinkButton1_Click(\"" + Eval("Value") + "\")" %>' />
</ItemTemplate>
</asp:Repeater>
<script type="text/javascript">
function LinkButton1_Click(v) {
document.getElementById('HiddenField1').value = v;
}
</script>
正如你可以在上面的代码片断看到的,你必须添加一个隐藏字段通过简单的JavaScript来选择的项目存储。我还定义了一个名为SelectedValue
的属性,以获取其他隐藏字段的值。
以下指令到目标页面的代码背后
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = new[] {
new { Text = "Item 1", Value = "Item 1" },
new { Text = "Item 2", Value = "Item 2" },
new { Text = "Item 3", Value = "Item 3" }
};
Repeater1.DataBind();
}
public string SelectedValue
{
get { return HiddenField1.Value; }
}
第二页
添加。
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
最后,你必须通过Page
类PreviousPage
属性访问到前一页。
string value = ((_Default)this.PreviousPage).SelectedValue;
_Why_你想隐藏它吗?作为高级用户,直接更改URL以获得所需效果可能是一种优势。例如。 'HTTP://www.google.com/search Q =本+ +会+工作great'? – 2011-05-16 08:27:08
为什么白痴不断在这些论坛上问“你为什么要隐藏它”的问题!?真的......安全......呃!并非所有网站都是完整的公共领域。有些是内部的,需要确保某些信息的安全。 – Fandango68 2017-09-20 04:38:36