2013-01-15 14 views
5

Czy istnieje sposób przekazania parametrów do kontrolki użytkownika/strony za pośrednictwem ścieżki (URL) w aplikacji sieci Web ASP.Net (nie MVC).Parametry przekazujące ASP.Net

tj http://abc.com/news/para-1/para-2 gdzie para-1 i para-2 są parametrami.

+4

Dlaczego blisko głos? Pytanie jest całkiem jasne. – zmbq

+0

Która wersja ASP.NET? Routing jest obsługiwany znacznie lepiej w V4 + –

+0

http://stackoverflow.com/questions/10659199/passing-arguments-to-an-asp-net-page –

Odpowiedz

5

To, czego szukasz, to Routing.

Jeśli korzystasz z platformy .NET 4+, możesz przeczytać, jak zaimplementować ją w aplikacji Web Forms pod numerem MSDN.

Reguła zasadniczo sprowadza się do tego, zakładając news.aspx jest gdzie chcesz iść:

routes.MapPageRoute("NewsRoute", 
    "News/{arg1}/{arg2}", 
    "~/news.aspx"); 

Następnie można przystąpić do dostępu do wartości przy użyciu jednej z następujących metod:

Page.RouteData.Values["arg1"] 
<asp:Literal ID="Literal" Text="<%$RouteValue:arg1%>" runat="server"></asp:Literal> 

Jeśli nie korzystasz z .NET 4+, Scott Hanselman pisze o ASP.NET FriendlyUrls, który jest dostępny w NuGet.

+0

Wygląda na to, że nie działa to w przypadku kontroli użytkownika? czy jest tak, że mogę uzyskać tę pracę na kontrolkach użytkownika – ravisilva

+0

Możesz użyć 'HttpContext.Current.Request.RequestContext.RouteData', aby uzyskać dane trasy z dowolnego miejsca w aplikacji. –

0

Mógłbyś spróbować użyć QueryStrings.

Przekierowanie swoją stronę tak:

Response.Redirect("Webform2.aspx?Name=" + 
this.txtName.Text + "&LastName=" + 
this.txtLastName.Text); 

A na nowej stronie uzyskać wartości tak:

private void Page_Load(object sender, System.EventArgs e) 
{ 
    this.txtBox1.Text = Request.QueryString["Name"]; 
    this.txtBox2.Text = Request.QueryString["LastName"]; 
} 
Powiązane problemy