asp.net - 删除 ASP.NET MVC 4 路由中的尾部斜杠到应用程序根

标签 asp.net asp.net-mvc routing asp.net-mvc-routing

在我的 ASP.NET MVC 4 应用程序的 RouteConfig 中文件,我注册了以下默认路由:

routes.MapRoute("Default", "{controller}/{action}/{id}",
    new { controller = "home", action = "index", id = UrlParameter.Optional });

现在,在我的 Razor View 中,我想生成一个指向我的应用程序根目录的 URL,如下所示:
<a href="@Url.Action("index", "home")">Home</a>

生成的 URL 包含一个斜杠;单击该链接将打开 localhost/IISApplicationName/页面。但是,我希望 URL 不包含尾部斜杠,以便 URL 为 localhost/IISApplicationName。为其他操作生成路由,例如/Account/Login,不会创建带有尾部斜杠的 URL——它只是链接到我的应用程序根的路由。

有什么方法可以防止 ASP.NET MVC 路由将尾部斜杠附加到上述路由?

(我知道我可以从包含斜杠的 URL 重定向到没有斜杠的 URL,但我宁愿让路由首先生成正确的路由 URL。)

最佳答案

我推荐 URL Rewrite Outboundrules。 Creating Outbound Rules for URL Rewrite Module : URL Rewrite Module 2 : URL Rewrite Module : The Official Microsoft IIS Site
示例配置:

    <rewrite>
        <outboundRules>
            <rule name="RewriteSlash">
                <match filterByTags="A" pattern="^/IISApplicationName/$" />
                <action type="Rewrite" value="/IISApplicationName" />
            </rule>
        </outboundRules>
    </rewrite>

关于asp.net - 删除 ASP.NET MVC 4 路由中的尾部斜杠到应用程序根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325425/

相关文章:

javascript - Ember : "import Route from ' @ember/routing/route';"throws error in Console

ASP.NET 用户登录最佳实践

html - 居中多个元素,当元素数量可能发生变化时

routing - 如何重定向到位于 HAProxy 后面的多个服务器,这些服务器具有不同的路径开头

caching - 将拦截器添加到 Camel 路线

c# - MVC 4 中通过 Ajax 更新 WebGrid 和 DropDown

c# - 企业图书馆强命名指导包

javascript - 客户端和服务器端之间的onclick

C# - 将图像输出到响应输出流,给出 GDI+ 错误

asp.net - 重定向到发布方法/操作