使用MVC启动下拉列表 - 显示最后选择的值

时间:2017-10-17 23:58:48

标签: asp.net twitter-bootstrap model-view-controller

我的Coverage MVC视图中有以下Bootstrap下拉列表。它默认为" Active"状态。选择其他状态时,相关项目将显示在页面上,例如"过去覆盖范围"。

    $(".dropdown-menu li a").click(function () {
    var selText = $(this).text();
    $("#statusButton").html(selText + '<span class="caret"></span>');

我有以下javascript来更改下拉列表的html,所以在这种情况下它会说&#34;过去的覆盖率&#34;。

  <div id="fb-root"></div>
  <script>(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/pt_BR/sdk.js#xfbml=1&version=v2.10";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));</script>

这样可以正常工作,但在这种情况下,你只能看到&#34;过去的覆盖范围&#34;,一秒钟,因为然后激活href链接,调用MVC Url.Action,页面重新加载和Active再次显示在下拉列表中。如何在下拉列表中保留最近选择的状态?

1 个答案:

答案 0 :(得分:1)

您可以使用http://square.github.io/retrofit/进行存储。如果您希望以每页会话为基础进行存储,则可以使用localStorage

这样的事情应该做..不要忘记在需要时通过调用localStorage.clear();来清除localStorage。

$(".dropdown-menu li a").click(function () {
    var selText = $(this).text();
    $("#statusButton").html(selText + '<span class="caret"></span>');
    localStorage['selText'] = selText; // store in storage
|);

$(document).ready(function() {
    var selText = localStorage['selText'] || 'defaultValue';

    if(selText != 'defaultValue') {
        $("#statusButton").html(selText + '<span class="caret"></span>'); // Load previously selected item
    }
});

我还没有真正做过这样的事情,所以必须有一个比这更好的方法。但这应该有用。