2014-03-06 33 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