2013-01-15 20 views
5

Gibt es eine Möglichkeit, dass ich Parameter an ein Benutzersteuerelement/eine Seite über den Pfad (URL) in einer ASP.Net-Webanwendung (nicht MVC) übergeben kann.Übergeben von Parametern ASP.Net

d.h. http://abc.com/news/para-1/para-2 wo para-1 und para-2 Parameter sind.

+4

Warum die enge Abstimmung? Die Frage ist ziemlich klar. – zmbq

+0

Welche ASP.NET-Version? Routing wird in V4 besser unterstützt + –

+0

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

Antwort

5

Was Sie suchen, heißt Routing.

Wenn Sie .NET 4+ verwenden, können Sie lesen, wie Sie es in einer Web Forms-Anwendung unter MSDN implementieren.

im Wesentlichen Ihre Regel dazu kommt nach unten, unter der Annahme, news.aspx, wo Sie hinwollen:

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

Sie können dann gehen die Werte für den Zugriff auf eine der folgenden Methoden verwenden:

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

Wenn Sie .NET 4+ nicht verwenden, schreibt Scott Hanselman über ASP.NET FriendlyUrls, das in NuGet verfügbar ist.

+0

Scheinbar funktioniert das nicht mit Benutzersteuerelementen? gibt es sowieso ich kann diese Arbeit auf Benutzersteuerelemente bekommen – ravisilva

+0

Sie können 'HttpContext.Current.Request.RequestContext.RouteData' verwenden, um die Route Daten von überall in Ihrer Anwendung zu erhalten. –

0

Sie versuchen QueryStrings verwenden könnte.

Umleiten Ihrer Seite wie folgt aus:

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

Und auf Ihrer neuen Seite die Werte wie diese:

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