asp.net-mvc – ASP.NET MVC忽略所有url结尾的“.html”

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC忽略所有url结尾的“.html”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新的asp.net mvc,现在挣扎着url路由.我正在使用asp.net mvc 3 RC2.

如何创建一个url路由,它会在URL中忽略最终的扩展名.扩展名可以是:.html,.aspx,.PHP,.anything.

例如,这些网址:

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

应该去家庭控制器?

另一个例子:

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

应该去家庭控制器和关于行动.

谢谢 :)

解决方法

我不知道你是否使用IIS7,但如果是这样,那么我会推荐一个重写规则,它检查以.xyz结尾的URL,然后在没有.xyz的情况下对它们进行重写.

这样的事情

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

这将处理您建议的用例.任何以扩展名和某些字符结尾的内容将被重写为不带扩展名的URL.这样做的好处是,您只需要一条路由,因为一切都没有一个进入您的应用程序.

猜你在找的asp.Net相关文章