我的项目配置为使用项目url aka“localhost / AppName /”并且没有特定页面或任何内容,一切正常,但如果用户删除了最后一个斜杠,我的hrefs会停止工作,因为它忽略了“AppName” ,举一个例子,如果我有一个名为Books / Index的动作,如果用户删除了最后一个斜杠“localhost / AppName”并按Enter键然后点击链接导航到books / index,完整路径将是“localhost / Books / Index”,这将无效,因为它在localhost之后缺少“AppName”。
我试图改变路线并创建重写规则,但仍然没有运气..我不确定为什么会发生这种情况,这让我担心,我考虑过改变链接的生成方式,但我认为强制执行“/”会更好,对此的任何想法都会受到赞赏。
我顺便使用默认路线。
答案 0 :(得分:0)
有一些方法可以解决这个问题,你可以谷歌搜索,你可以尝试一些解决方案。但是没有一个完美。
在我的选项中,真正的修复只是使用相对路径来取消。在您的情况下,您不应该使用books / index作为href,而应始终使用url helper来创建绝对路径。
这个问题的原因来自asp.net路由机制,因此root修复只是保留了路由机制。
答案 1 :(得分:0)
其实我也有这个问题..我不确定这是否是正确的解决方案,但这对我来说很好!将@ Url.Action()用于href ..
<a href = @Url.Action("ActionName","ControllerName")>