如何使页面/域不加载页面所在的文件夹。在ASP.net中

时间:2017-01-06 19:06:45

标签: c# asp.net

我正在尝试创建一个网站,但要更好地控制我想将它们放在其他文件夹中的页面。让我们说这是我的配置文件来自stackoverflow

的链接
  

https://stackoverflow.com/users/6682220/altjen-b

如您所见,它显示了它所在的子文件夹,例如用户。 我希望用户在访问他的个人资料时不会显示用户/ 6682220 / userName 但

  

stackoverflow.com/userName

即使userName在其他文件夹中。

如果这让你有点困惑,这是另一个例子。

这就是我放置页面的方式。

enter image description here

但由于会有很多页面,因此工作起来会很困难。所以我想将Test和Test2放在一个特定的文件夹中。

首先链接看起来像这样: enter image description here

但在文件夹内添加后: enter image description here

这就是它在页面链接中的样子。 enter image description here

所以,我可以添加/删除或更改以使第4张照片中的链接看起来像第2张照片中的链接。但仍然在文件夹内。

我知道这有点让人难以理解,所以如果你有什么不明白的地方请告诉我更好的解释。

1 个答案:

答案 0 :(得分:1)

你在谈论asp.net路由功能

查看msdn docs

https://msdn.microsoft.com/en-us/library/dd329551.aspx

Global.asax添加指向路由名称空间的链接

<%@ Import Namespace="System.Web.Routing" %>

然后编辑Global.asax.cs

public class Global : HttpApplication
{

    void Application_Start(object sender, EventArgs e)
    {
      // Code that runs on application startup
      RouteConfig.RegisterRoutes(RouteTable.Routes);
      BundleConfig.RegisterBundles(BundleTable.Bundles);

      // Initialize the product database.
      Database.SetInitializer(new ProductDatabaseInitializer());


      // Add Routes.
      RegisterCustomRoutes(RouteTable.Routes);
    }

    void RegisterCustomRoutes(RouteCollection routes)
    {
      routes.MapPageRoute(
          "MyRoute",
          "MyApp/{param}",
          "~/RandomFolder/Test.aspx"
      );
    }
}