Asp.net mvc 在我的MVC应用程序中添加尾部斜杠是什么? .NET 4.51、MVC 5、VS 2013、IIS Express

Asp.net mvc 在我的MVC应用程序中添加尾部斜杠是什么? .NET 4.51、MVC 5、VS 2013、IIS Express,asp.net-mvc,iis,url-rewriting,iis-express,Asp.net Mvc,Iis,Url Rewriting,Iis Express,我正在尝试设置我的开发环境,这样当我运行项目时,它会以的形式打开,但是由于某种原因,页面会以尾部斜杠打开,即 在阅读之后,我无法使用其中关于出站重写的任何建议来消除尾随斜杠。我不使用尾随斜杠的动机是为了搜索引擎优化。我们的搜索引擎优化人员在任何情况下都不希望出现尾部斜杠 public static void RegisterRoutes(RouteCollection aRoutes) { aRoutes.IgnoreRoute("{resource}.axd/{*pathInfo}")

我正在尝试设置我的开发环境,这样当我运行项目时,它会以的形式打开,但是由于某种原因,页面会以尾部斜杠打开,即

在阅读之后,我无法使用其中关于出站重写的任何建议来消除尾随斜杠。我不使用尾随斜杠的动机是为了搜索引擎优化。我们的搜索引擎优化人员在任何情况下都不希望出现尾部斜杠

public static void RegisterRoutes(RouteCollection aRoutes)
{
    aRoutes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    aRoutes.AppendTrailingSlash = false;
    aRoutes.LowercaseUrls = true;

    aRoutes.MapRoute("Default", "{controller}/{action}/{id}", new
                                                              {
                                                                  controller = "Home",
                                                                  action = "Index",
                                                                  id = UrlParameter.Optional
                                                              }
        );
}
我的项目设置是:

我也尝试过以下重写规则,但没有任何区别:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true" />
  <handlers>
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
    <remove name="OPTIONSVerbHandler" />
    <remove name="TRACEVerbHandler" />
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>

  <rewrite>
    <rules>
      <!--To always remove trailing slash from the URL-->
      <rule name="Remove trailing slash" stopProcessing="true">
        <match url="(.*)/$" />
        <conditions>
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Redirect" redirectType="Permanent" url="{R:1}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>


那么,当我打开默认路由时,如何使尾部斜线不在那里呢?所有其他路由,例如/MyRoute/最终都会按预期的方式结束,即/MyRoute。

您是否验证了它不仅仅是浏览器弹出的?例如,在Chrome中,尽管我的项目url根据项目属性有一个尾随斜杠,但Chrome从不显示它。但是,如果您查看dev工具中的networkget请求,它所访问的实际url有一个。所以可能只是你的浏览器地址栏。另一方面,IE总是在我删除它时显示它。但是如果你在IE中使用F12并查看请求头的详细信息,你可以看到它没有使用GET的尾部斜杠。@rism HttpContext.request.Url显示尾部斜杠,当我查看请求时FireBug也显示尾部斜杠。
request.Url
是Uri。如果您
var url=newuri(“http://www.google.com“
,并中断您将获得的
http://www.google.com/
。重要的是响应标题。顺便说一句,你有没有验证过,它不仅仅是浏览器弹出它在那里?例如,在Chrome中,尽管我的项目url根据项目属性有一个尾随斜杠,但Chrome从不显示它。但是,如果您查看dev工具中的networkget请求,它所访问的实际url有一个。所以可能只是你的浏览器地址栏。另一方面,IE总是在我删除它时显示它。但是如果你在IE中使用F12并查看请求头的详细信息,你可以看到它没有使用GET的尾部斜杠。@rism HttpContext.request.Url显示尾部斜杠,当我查看请求时FireBug也显示尾部斜杠。
request.Url
是Uri。如果您
var url=newuri(“http://www.google.com“
,并中断您将获得的
http://www.google.com/
。重要的是响应标题。顺便提一下