ユーザーがページをナビゲートする際にintを渡したいと思います。ハイパーリンクとページ間での変数の受け渡し
私はこれを持っている:
Hyperlink q = new HyperLink();
q.Text = ThreadName;
q.NavigateUrl = "AnswerQuestion.aspx";
は、私が他のページに番号5を通過したいと仮定します。それ、どうやったら出来るの?
ユーザーがページをナビゲートする際にintを渡したいと思います。ハイパーリンクとページ間での変数の受け渡し
私はこれを持っている:
Hyperlink q = new HyperLink();
q.Text = ThreadName;
q.NavigateUrl = "AnswerQuestion.aspx";
は、私が他のページに番号5を通過したいと仮定します。それ、どうやったら出来るの?
class Default : Page
{
q.NavigateUrl = "AnswerQuestion.aspx?x=5";
}
class AnswerQuestion : Page
{
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
string x = this.Request.QueryString["x"];
int i;
if (!Int32.TryParse(x, out i))
throw new Exception("Can't parse x as int");
// then use i
}
}
あなたは、このような動作を確保することができます。最初のページにハイパーリンクの代わりにLinkButtonコントロールを使用します。
<asp:LinkButton runat="server" PostBackUrl="~/Question.aspx?x=5">Question #5</asp:LinkButton>
とし、その後第二に:PreviousPageプロパティが強く型付けされ
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
if (this.PreviousPage != null && this.PreviousPage.IsValid)
{
// do the same
}
注こと、すなわちデフォルトの種類だけではなくページ
あなたができることですSession variablesを使用して1ページに値を設定してください:
class Default : Page
{
// ...other code
Session["myValue"] = "5";
}
nの受信機のページにそれを拾う:
class TargetPage : Page
{
// other code...
int x;
try {
x = int.Parse(Session["myValue"]);
} catch {}
// do something with x
}
良いことについてSession
の変数を使用すると、任意のデータ型/オブジェクトを使用できることであり、それはURLで、すなわち見えない、ユーザーから隠されています。
あなたはそれをURLに入れました。私はそれを行うことができることを忘れていました! – Matrix001
@ Matrix001:さらに便利なコードを追加しました – abatishchev