就我而言,這裏有幾條路線。您可以使用會話或應用程序緩存來存儲訪問las的頁面,然後使用RedirectToAction
在GoBack()
操作中獲取該頁面(例如通過存儲路由)。
但是,也許更好和無狀態的方法是通過使視圖模型具有用於最後使用的控制器&動作的兩個屬性來呈現超鏈接。然後,您可以通過調用/Navigation/Empty
操作的行爲結果(當沒有任何記錄時)傳遞這些結果。
視圖模型
public class NavigationVM
{
public string LastAction {get;set;}
public string LastController {get;set;}
}
導航控制器動作
public ActionResult Empty(string lastAction, string lastController)
{
var vm = new NavigationVM()
{
LastAction = lastAction,
LastController = lastController
}
return View(vm);
}
查看
@model = Namespace.NavigationVM
@Html.ActionLink("LinkName", Model.LastAction, Model.LastController)
編輯
如果你需要找出學生管理員被調用的地方(在你的例子中),你可以用同樣的方法去做。 I.e .:使用額外路線值呈現鏈接到StudentsController
。
StudentController:
public ActionResult Index(string lastAction, string lastController)
{
.... // no students
return RedirectToAction("Empty", "Navigation", new RouteValueDictionary(new { lastAction = "Index", lastController= "Student"}));
}
查看超鏈接到學生控制器(使用分別呈現這個視圖lastAction
和lastController
動作和控制器):
@Html.ActionLink("Get students", "Index", "Student", new { lastAction= "Index", lastController = "CallingController" }, null)
如果你正在構建一個APP-你可能想要調查SPA(單頁應用)體系結構http://en.wikipedia.org/wiki/Single-page_application – jfrankcarr