简体   繁体   English

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

[英]How to remove “.aspx” from url in asp.net c#?

I want to remove ".aspx" from my web appliaction url.我想从我的网络应用程序 url 中删除“.aspx”。 also I have using webservices.我也使用网络服务。

If I use below code web services is not working.如果我使用下面的代码 Web 服务不起作用。

Global.asax全球.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");
      }
}

for Eg:-例如:-

Actual page is DEFAULT.aspx, but I want to show DEFAULT in address bar.实际页面是 DEFAULT.aspx,但我想在地址栏中显示 DEFAULT。 So I used Global.asax to remove (.aspx).所以我使用 Global.asax 来删除 (.aspx)。 It's working fine.它工作正常。 but Web service is not working(Default.asmx)但 Web 服务不工作(Default.asmx)

There is a module that will handle this for you without having to directly manipulate the urls, as described here: http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx .有一个模块可以为您处理此问题,而无需直接操作 url,如下所述: http : //www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx


Install the package, Microsoft.AspNet.FriendlyUrls .安装包Microsoft.AspNet.FriendlyUrls

In your RouteConfig , the extensionless urls are enabled using:在您的RouteConfig ,使用以下方法启用无扩展名 url:

routes.EnableFriendlyUrls();

You can generate friendly urls using extension methods, for example, to generate /Foo/bar/34, you can use:您可以使用扩展方法生成友好的 url,例如生成 /Foo/bar/34,您可以使用:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM