2014-03-06 60 views
0

在我的ASP.NET MVC 4應用程序與退出的ASP.NET 4 Webforms應用程序集成後,主頁是Default.aspx,它有一個相對鏈接:<a href="myApp/Account/Login.aspx">Click here to login</a> 。當我點擊鏈接時,它會正確打開login.aspx頁面。但是,我登錄後,然後註銷,然後再次點擊相同的鏈接登錄後,我得到的錯誤:"The resource cannot be found. Requested URL: /myApp/myApp/Account/Login.aspx"。正如您注意到的那樣,這次URL在路徑中添加了一個額外的myApp。我可以在狀態欄中看到這個改變的路徑,即使當我在登錄並註銷之後將鼠標懸停在鏈接上時:http://localhost/myApp/myApp/Account/Login.aspxASP.NET第一次登錄和註銷後的相對url更改

另一方面,如果我關閉瀏覽器,然後再次打開並轉到我的應用程序並將鼠標懸停在登錄鏈接上,我可以在狀態欄中看到正確的URL:http://localhost/myApp/Account/Login.aspx。我可以點擊鏈接並登錄。

爲什麼當我登錄和註銷並且不關閉瀏覽器時相對URL正在改變?我使用IE10和Chrome 33

回答

0

這是很難說爲什麼沒有看到更多的代碼,但它是一個不好的做法,硬編碼的URL字符串,你最好生成它:

<a href="@Url.RouteUrl("abc", new { action = "Login", controller = "Account" })">Click here to login</a> 
+0

Default.aspx是來自傳統ASP.NET webforms應用程序的主頁,因此不使用任何控制器或視圖。 ASP.NET MVC已集成到傳統的ASP.NET Webform應用程序中。似乎用戶登錄後,MV路由部分接管了集成應用程序,並且搞亂了相關URL。我已經在Glogal.asax.cs中定義了路由,如下所示:[link](http://stackoverflow.com/questions/21819051/asp-net-mvc4-with-webforms-default-aspx-as-the-start -頁) – nam