传递参数ASP.Net

时间:2013-01-15 11:37:17

标签: c# asp.net webforms

有没有办法可以通过ASP.Net Web应用程序(而不是MVC)中的路径(URL)将参数传递给用户控件/页面。

即。 http://abc.com/news/para-1/para-2 其中para-1para-2是参数。

3 个答案:

答案 0 :(得分:5)

您要找的是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中找到。

答案 1 :(得分:2)

您可以使用ASP.NET Friendly URLs

  

ASP.NET友好URL库使其易于启用   基于文件的处理程序(例如ASPX,ASHX)的无扩展URL   ASP.NET应用程序。

Scott Hanselman有一个很好的介绍:Introducing ASP.NET FriendlyUrls - cleaner URLs, easier Routing, and Mobile Views for ASP.NET Web Forms

答案 2 :(得分:0)

您可以尝试使用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"];
}