ASP.Net Webアプリケーション(MVCではない)のパス(URL)を介してユーザーコントロール/ページにパラメーターを渡す方法はありますか?
つまり
、 http://abc.com/news/para-1/para-2
ここでpara-1
、およびpara-2
はパラメータです。
ASP.Net Webアプリケーション(MVCではない)のパス(URL)を介してユーザーコントロール/ページにパラメーターを渡す方法はありますか?
つまり
、 http://abc.com/news/para-1/para-2
ここでpara-1
、およびpara-2
はパラメータです。
あなたが探しているのは と呼ばれるものRouting
です。
.NET 4+ を使用している場合は、MSDNで Web フォーム アプリケーションに実装する方法を参照できます。
news.aspx
あなたが行きたい場所であると仮定すると、あなたのルールは本質的にこれに帰着します:
routes.MapPageRoute("NewsRoute",
"News/{arg1}/{arg2}",
"~/news.aspx");
次に、次のいずれかの方法を使用して値にアクセスできます。
Page.RouteData.Values["arg1"]
<asp:Literal ID="Literal" Text="<%$RouteValue:arg1%>" runat="server"></asp:Literal>
.NET 4 以降を使用していない場合は、NuGet で利用できるASP.NET FriendlyUrlsについて Scott Hanselman が書いています。
ASP.NET フレンドリ URLを使用できます
ASP.NET Friendly URL ライブラリを使用すると、ASP.NET アプリケーションでファイルベースのハンドラー (ASPX、ASHX など) の拡張子のない URL を簡単に有効にできます。
Scott Hanselman による優れた紹介があります。
QueryStringsを使用してみてください。
次のようにページをリダイレクトします。
Response.Redirect("Webform2.aspx?Name=" +
this.txtName.Text + "&LastName=" +
this.txtLastName.Text);
そして、新しいページで次のような値を取得します。
private void Page_Load(object sender, System.EventArgs e)
{
this.txtBox1.Text = Request.QueryString["Name"];
this.txtBox2.Text = Request.QueryString["LastName"];
}