2016-06-20 36 views
0

我想从我的web应用程序url中删除“.aspx”。我也使用webservices。修剪.aspx时,Web服务不工作.aspx

如果我使用下面的代码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)。它工作正常。但Web服务不起作用(Default.asmx)

+0

欢迎来到堆栈溢出:-) 请看[问] 和[mcve]。这将有助于获得有用的答案。 – JimHawkins

+0

请将您评论中的信息添加到问题中(通过'edit'question)。您不应该致电其他成员阅读所有关于寻找解决方案的问题的评论。 – JimHawkins

+1

我会考虑使用IIS的['URLRewrite'](http://www.iis.net/learn/extensions/url-rewrite-module)模块。不一定是最容易使用,但非常强大,并会做我相信你想要的 – freefaller

回答

1

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


安装包装,Microsoft.AspNet.FriendlyUrls

在你RouteConfig,无扩展名的URL使用启用:

routes.EnableFriendlyUrls(); 

可以使用扩展方法生成友好的URL,例如,生成/富/酒吧/ 34,你可以使用:

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