检查一些代码,不明白为什么会失败。主控制器的指数方法是这样的:HTML.ActionLink查询字符串参数未传递给方法
public ActionResult Index(int appEventId = -1)
通常有没有查询字符串PARAM,但偶尔也有一个需要路由到主页面,并通过特定的ID自动显示。默认值-1表示它应该正常显示。这通常工作正常。
在另一个页面,这个剃须刀的代码生成一个有效的超链接:
@Html.ActionLink("Back to Main", "Index", "MainController", new { appEventId = -9 }, new { }) // certain things renamed to protect the innocent!
测试时在本地这个工程就像一个魅力。控制器的Index方法检测到-9作为一个特定的值,并为特定情况做一些事情。
但是,当部署在Web服务器上时,应用程序位于子文件夹中,而不是根目录。主要是它工作正常,但在上述情况下,它会产生这样的网址:
http://server/appSubFolder/?appEventId=-9
和上面的URL看起来正确,但是控制器的指数方法不是通过-9。
是否有一些限制,MVC应用程序不能部署到子文件夹?我不是那种决定以这种方式部署它的人,我只是想弄明白错误。
您是否使用IIS作为Web服务器?应该能够告诉它/将其配置为使用子文件夹作为应用程序的根目录。 – asymptoticFault
已经提出这一点,但有一些繁琐的手续。同时,这应该工作,是吗? – jrichview