Asp.Net MVC 4默认URL - 缺少尾随斜杠会混淆href链接

时间:2013-01-12 15:50:02

标签: asp.net asp.net-mvc url-rewriting routes

我的项目配置为使用项目url aka“localhost / AppName /”并且没有特定页面或任何内容,一切正常,但如果用户删除了最后一个斜杠,我的hrefs会停止工作,因为它忽略了“AppName” ,举一个例子,如果我有一个名为Books / Index的动作,如果用户删除了最后一个斜杠“localhost / AppName”并按Enter键然后点击链接导航到books / index,完整路径将是“localhost / Books / Index”,这将无效,因为它在localhost之后缺少“AppName”。

我试图改变路线并创建重写规则,但仍然没有运气..我不确定为什么会发生这种情况,这让我担心,我考虑过改变链接的生成方式,但我认为强制执行“/”会更好,对此的任何想法都会受到赞赏。

我顺便使用默认路线。

2 个答案:

答案 0 :(得分:0)

有一些方法可以解决这个问题,你可以谷歌搜索,你可以尝试一些解决方案。但是没有一个完美。

在我的选项中,真正的修复只是使用相对路径来取消。在您的情况下,您不应该使用books / index作为href,而应始终使用url helper来创建绝对路径。

这个问题的原因来自asp.net路由机制,因此root修复只是保留了路由机制。

答案 1 :(得分:0)

其实我也有这个问题..我不确定这是否是正确的解决方案,但这对我来说很好!将@ Url.Action()用于href ..

<a href = @Url.Action("ActionName","ControllerName")>