檢查一些代碼,不明白爲什麼會失敗。主控制器的指數方法是這樣的: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