您的位置 首页 asp.Net

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.这样做的好处是,您只需要一条路由,因为一切都没有一个进入您的应用程序.

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章