如何从 asp.net c# 中的 url 中删除“.aspx”?

How to remove ".aspx" from url in asp.net c#?

我想从我的网络应用程序中删除“.aspx”url。我也有使用网络服务。

如果我使用以下代码,Web 服务将无法正常工作。

Global.asax

protected void Application_BeginRequest(object sender, EventArgs e)
{
      String WebsiteURL = Request.Url.ToString();
      String[] SplitedURL = WebsiteURL.Split('/');
      String[] Temp = SplitedURL[SplitedURL.Length - 1].Split('.');

      // This is for aspx page
      if (!WebsiteURL.Contains(".aspx") && Temp.Length == 1)
      {
          if (!string.IsNullOrEmpty(Temp[0].Trim()))

              Context.RewritePath(Temp[0] + ".aspx");
      }
}

例如:-

实际页面是 DEFAULT.aspx,但我想在地址栏中显示默认值。所以我使用 Global.asax 删除 (.aspx)。它工作正常。但是网络服务不工作(Default.asmx)

有一个模块可以为您处理此问题,而无需直接操作 url,如下所述:http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx


安装包,Microsoft.AspNet.FriendlyUrls

在您的 RouteConfig 中,使用以下方式启用了无扩展名网址:

routes.EnableFriendlyUrls();

您可以使用扩展方法生成友好的 url,例如生成 /Foo/bar/34,您可以使用:

<a href="<%: FriendlyUrl.Href("~/Foo", "bar", 34) %>">Click me</a>