asp.net-mvc - ASP.NET MVC 忽略所有 url 末尾的 ".html"

标签 asp.net-mvc url-routing

我是 ASP.NET MVC 新手,现在正在努力解决 url 路由问题。我正在使用 asp.net mvc 3 RC2。

如何创建一个忽略 url 中最末尾扩展名的 url 路由。扩展名可以是:.html.aspx.php.anything

例如,这些网址:

/Home.html
/Home.en
/Home.fr
/Home

应该转到Home Controller 吗?

再举一个例子:

/Home/About.html
/Home/About.en
/Home/About.fr
/Home/About

应该转到Home Controller 和About操作。

谢谢:)

最佳答案

我不确定您是否使用 IIS7,但如果是这样,那么我会推荐一个重写规则,该规则检查以 .xyz 结尾的网址,然后对它们进行重写,而无需使用.xyz.

类似这样的事情:

<rewrite>
  <rules>
    <rule name="HtmlRewrite">
      <match url="(.*)(\.\w+)$" />
      <action type="Rewrite" url="{R:1}" />
    </rule>
  </rules>
</rewrite>

这将处理您建议的用例。任何以扩展名和某些字符结尾的内容都将被重写为不带扩展名的 url。这样做的好处是您只需要一条路线,因为所有内容都会进入您的应用程序,而无需一条路线。

关于asp.net-mvc - ASP.NET MVC 忽略所有 url 末尾的 ".html",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4449449/

相关文章:

javascript - 当组件是 fragment view 时添加 props 和 transition

php - 使用重写引擎时正确编码 url

javascript - 获取 MVC 模型数据并将其传递到 AngularJS Controller

asp.net-mvc - 我可以将 session 状态存储在 ASP.NET MVC 应用程序的现有 SQL Azure DB 中吗?

c# - ASP.Net MVC 中长时间运行的进程

php - 即使路由器脚本用于 PHP 内置 Web 服务器,也启用请求日志

java - Spring MVC 导致错误的操作

c# - ASP.NET PageMethods 和错误 "The HTTP verb POST used to access path is not allowed"

javascript - ASP.NET MVC 3 和 Google map API

asp.net-mvc - ASP.NET mvc 4 Controller 参数在将 json 发送到 Controller 时始终为空,为什么?