在 ASP.NET 中的每个页面中来回传递参数的简单方法
A easy way to pass parameter back and forth in every page in ASP.NET
我想在每个页面来回传递一个id。我不能使用会话、应用程序变量和数据库,因为我希望它基于页面。如果存在表单或 url 串联是我能想到的隐藏字段。
有没有一种无需手动将其添加到 url 或每个页面的隐藏字段即可获取和发送此 ID 的简便方法?例如,使用主页或 url 重写方法。
您可以将请求url作为参数进行传输。
例子
在第 1 页中,您使用参数 Test
重定向到第 2 页
Response.Redirect("Page2.aspx?param1=Test");
在第 2 页中,您可以这样理解:
if (Request.QueryString["param1"] != null)
var param1 = Request.QueryString["param1"];
在母版页中设置 public 字符串值
Public partial class MasterPage:System.Web.UI.MasterPage
{
public string myValue
{
get{return "Master page string value" ;}
set {}
}
}
访问您子页面中的属性
protected void Page_Load(object sender, EventArgs e)
{
MasterPage mp = (MasterPage) Page.Master;
myLabel.text = mp.MyValue
}
一个想法:
在母版页中放置一个隐藏字段:
<asp:HiddenField runat="server" ID="hdCrossPageValue"/>
使用此扩展方法 get/set 每个页面的值:
public static class Util
{
public static string GetCrossPageValue(this Page page)
{
if (page == null || page.Master == null) return null;
var hf = page.Master.FindControl("hdCrossPageValue") as HiddenField;
return hf == null ? null : hf.Value;
}
public static void SetCrossPageValue(this Page page, string value)
{
if (page == null || page.Master == null) return;
var hf = page.Master.FindControl("hdCrossPageValue") as HiddenField;
if (hf != null)
{
hf.Value = value;
}
}
}
像这样:
this.SetCrossPageValue("my cross page value");
var crossPageValue = this.GetCrossPageValue();
我想在每个页面来回传递一个id。我不能使用会话、应用程序变量和数据库,因为我希望它基于页面。如果存在表单或 url 串联是我能想到的隐藏字段。
有没有一种无需手动将其添加到 url 或每个页面的隐藏字段即可获取和发送此 ID 的简便方法?例如,使用主页或 url 重写方法。
您可以将请求url作为参数进行传输。 例子 在第 1 页中,您使用参数 Test
重定向到第 2 页Response.Redirect("Page2.aspx?param1=Test");
在第 2 页中,您可以这样理解:
if (Request.QueryString["param1"] != null)
var param1 = Request.QueryString["param1"];
在母版页中设置 public 字符串值
Public partial class MasterPage:System.Web.UI.MasterPage
{
public string myValue
{
get{return "Master page string value" ;}
set {}
}
}
访问您子页面中的属性
protected void Page_Load(object sender, EventArgs e)
{
MasterPage mp = (MasterPage) Page.Master;
myLabel.text = mp.MyValue
}
一个想法:
在母版页中放置一个隐藏字段:
<asp:HiddenField runat="server" ID="hdCrossPageValue"/>
使用此扩展方法 get/set 每个页面的值:
public static class Util
{
public static string GetCrossPageValue(this Page page)
{
if (page == null || page.Master == null) return null;
var hf = page.Master.FindControl("hdCrossPageValue") as HiddenField;
return hf == null ? null : hf.Value;
}
public static void SetCrossPageValue(this Page page, string value)
{
if (page == null || page.Master == null) return;
var hf = page.Master.FindControl("hdCrossPageValue") as HiddenField;
if (hf != null)
{
hf.Value = value;
}
}
}
像这样:
this.SetCrossPageValue("my cross page value");
var crossPageValue = this.GetCrossPageValue();