我是 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/