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