有什麼辦法可以通過ASP.Net Web應用程序(而不是MVC)中的路徑(URL)將參數傳遞給用戶控件/頁面。傳遞參數ASP.Net
即 http://abc.com/news/para-1/para-2 其中para-1
和para-2
是參數。
有什麼辦法可以通過ASP.Net Web應用程序(而不是MVC)中的路徑(URL)將參數傳遞給用戶控件/頁面。傳遞參數ASP.Net
即 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+,Scott Hanselman寫了大約ASP.NET FriendlyUrls,它在NuGet中可用。
顯然這不適用於用戶控件?無論如何,我可以在用戶控件上獲得此工作 – ravisilva
您可以使用'HttpContext.Current.Request.RequestContext.RouteData'從應用程序中的任何位置獲取路徑數據。 –
的ASP.NET友好的URL庫可以很容易地啓用 ASP.NET應用程序基於文件的處理程序擴展名 網址(例如ASPX,ASHX)。
有一個很好的介紹由Scott Hanselman在:Introducing ASP.NET FriendlyUrls - cleaner URLs, easier Routing, and Mobile Views for ASP.NET Web Forms
你可以嘗試使用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"];
}
爲什麼接近的選票?這個問題很清楚。 – zmbq
哪個ASP.NET版本?路由在V4中支持得好多了+ –
http://stackoverflow.com/questions/10659199/passing-arguments-to-an-asp-net-page –