2013-07-29 75 views
1

好吧,这可能是一个愚蠢的问题,我不能搜索任何相关的问题,也许这不是一个问题保持当前页面更改actionlink

为前。我有一个导航菜单在我的MVC 4应用程序像这样

  • @Html.ActionLink("Driver", "Index", "Driver")
  • @Html.ActionLink("Vehicle", "Index", "Vehicle")
  • 在驱动控制指标获得我有一个从数据库模型,并显示在视图中的一切,用户做出改变的东西没有提交然后点击菜单动作链接进入车辆页面,然后再次返回驱动程序页面。

    我想要的是在驱动程序索引页面我可以保留最后的更改并显示它,但是在驱动程序控制索引GET中,我必须从数据库中获取所有内容,因为我没有将最后一次更改保存到tempdata的文章。

    有什么想法?非常感谢你

    更新:非常感谢菲利普的答案,但仍然有点问题。因为ActionLink发生在$(window).unload之前,所以如果我在jQuery中向服务器发布帖子,回发将失去方向。

    +0

    请停止将“ASP.NET MVC”简称为“MVC”。一个是框架,而另一个是独立于语言的设计模式。这就像调用IE - “互联网” –

    回答

    0

    我会尝试捕获onbeforeunload事件,并检查用户是否对模型进行了修改。

    如果有变化,您可以将它们保存在浏览器local or session storage(HTML5)中或将它们发布到服务器(网络服务)。

    在下次重新加载页面时,您必须检查存储或向服务器询问模型。

    (function ($) { 
        var isDirty = false; 
    
        $(function(){ 
         // check local/session storage OR fetch data from server. 
        }); 
    
        $(':input').change(function() { 
         isDirty = true; 
        }); 
    
        $(window).unload(function() { 
         if (isDirty) { 
          // store changes in local/session storage OR post them to the server. 
         } 
        }); 
    }(jQuery)); 
    
    +0

    非常感谢菲利普,这是一个很好的答案 –

    相关问题