检查一些代码,不明白为什么会失败。主控制器的 index 方法如下所示:
public ActionResult Index(int appEventId = -1)
通常没有查询字符串参数,但偶尔需要路由到主页并将特定 ID 传递给自动显示。默认值 -1 表示它应该正常显示。这正常工作。
在另一个页面中,此剃须刀代码生成一个有效的超链接:
@Html.ActionLink("Back to Main", "Index", "MainController", new { appEventId = -9 }, new { }) // certain things renamed to protect the innocent!
在本地测试时,这就像一个魅力。控制器 Index 方法将 -9 检测为特定值,并针对该特定情况执行某些操作。
但是,当部署在 Web 服务器上时,应用程序位于子文件夹中,而不是根目录中。大多数情况下它工作正常,但在上述情况下,它会生成这样的 url:
http://server/appSubFolder/?appEventId=-9
而且上面的 URL 看起来是正确的,但是控制器的 Index 方法没有通过 -9。
是否存在无法将 MVC 应用程序部署到子文件夹的限制?我不是决定以这种方式部署它的人,我只是想弄清楚这个错误。