5

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

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

4

3 回答 3

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 中可用。

于 2013-01-15T11:39:46.173 回答
2

您可以使用ASP.NET 友好 URL

ASP.NET 友好的 URL 库使得在 ASP.NET 应用程序中为基于文件的处理程序(例如 ASPX、ASHX)启用无扩展 URL 变得很容易。

Scott Hanselman 有一篇很好的介绍:介绍 ASP.NET FriendlyUrls - 更简洁的 URL、更简单的路由和 ASP.NET Web 窗体的移动视图

于 2013-01-15T11:42:03.370 回答
1

您可以尝试使用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"];
} 
于 2013-01-15T11:44:03.887 回答