由於某些原因,當返回一個鏈接時,即點擊瀏覽器中的後退按鈕,會將我帶到我的應用程序中的錯誤鏈接。我有一個路徑:ASP.NET MVC - Back Links錯誤的URL
http://localhost:3340/Accounts/ContractsControl/GeneralContracts
,並在該網頁上我現在該帶我到
http://localhost:3340/Accounts/ContractsControl/GeneralContractView/223
點擊一個鏈接時,我打它需要我的反向鏈接
http://localhost:3340/Accounts/ContractsControl/DataContracts
這是我去到GeneralContracts
頁面的頁面。我不完全確定爲什麼會發生這種情況,但這意味着用戶點擊後面的鏈接(這很常見)會被帶到錯誤的頁面。
的Global.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using Intranet.AreasLib;
namespace Intranet
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapAreas(
"{controller}/{action}/{id}",
"Intranet",
new[] { "Accounts", "Client" }
);
routes.MapRootArea(
"{controller}/{action}/{id}",
"Intranet",
new { controller = "Home", action = "Index", id = "" }
);
}
protected void Application_Start()
{
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new AreaViewEngine());
RegisterRoutes(RouteTable.Routes);
}
}
}
固定
中的JavaScript我確實有事情我很久很久以前寫的,只是猛的在那裏。能夠點擊表格行和重定向到另一個網頁,其中像如下:
<script type="text/javascript">
$(document).ready(function() {
$('tr:not(:has(th))').click(function() {
window.location.replace("GeneralContractView/" + $(this).attr('id'));
});
});
</script>
雖然這個工作,它應該是這樣的:
<script type="text/javascript">
$(document).ready(function() {
$('tr:not(:has(th))').click(function() {
window.location = "GeneralContractView/" + $(this).attr('id');
});
});
</script>
因爲replace
不做與分配新位置相同。這意味着URL引用者爲空。學過的知識。
我不認爲它是瀏覽器,所以你需要發佈你的控制器的相關部分。 – 2009-07-10 13:29:06
當您導航應用程序並按下後退瀏覽器按鈕並在此處粘貼一些日誌時,您是否可以使用Fiddler監控http流量? – 2009-07-13 09:58:10