html 如何在页面刷新后显示jQuery变量?

apeeds0o  于 2022-11-27  发布在  jQuery
关注(0)|答案(1)|浏览(152)

我在jQuery中有一个名为storedDealer的变量,当选择下拉项时,我希望用选项文本填充该变量:

var storedDealer = '';

$(document).ready(function () {
    let dealerId = @Model.DealerID;
    if (0 < dealerId.length) {
        $("#DealerID option[value='dealerId'']").attr('selected', 'selected');
        $('#dealershipName').val(storedDealer);
    }
    $('#DealerID').on("change", function () {
        storedDealer = this.value;
    });
});

function getDealers(el) {
    $.get("@Url.Action("GetDealers", "Admin")?region=" + $(el).val(), function (res) {
        var markup = "";
        for (var i = 0; i < res.length; i++) {
            markup += '<option value='+res[i].Value+'>'+res[i].Text+"</option>"
        }
        $('#DealerID').prop('disabled', false);
        $("#DealerID").html(markup).show();
    });
}

我的HTML有一些C# Razor代码,这是定义DealerID的唯一位置。我添加了<var id="dealershipName">项:

<tr>
    <td align="right">Dealership:</td>
    <td>@Html.DropDownListFor(m => m.DealerID, new List<SelectListItem>())</td>
    <td><var id="dealershipName" /></td>
</tr>
<tr>
    <td></td>
    <td><input type="submit" value="Submit" /></td>
    <td></td>
</tr>

我不会想到Razor变量会被jQuery看到,但它们似乎可以工作。
但是当提交搜索时,页面会刷新,现在下拉列表被重置,<var>字段为空。
<var>字段是我添加的,我正在努力工作。
如何在表单重新加载后保留该值?

laawzig2

laawzig21#

我认为你可以尝试使用Session,这里有一个. net6的演示.每次选择的值改变时,改变storedDealer和会话数据.当你刷新页面时,如果会话数据不为空,storedDealer将被设置为会话数据:
Program.cs:

builder.Services.AddControllersWithViews();

builder.Services.AddDistributedMemoryCache();

builder.Services.AddSession(options =>
{
    options.IdleTimeout = TimeSpan.FromDays(1);
    options.Cookie.HttpOnly = true;
    options.Cookie.IsEssential = true;
});

处理措施:

public IActionResult Test(){
        return View();
    }
    public void SetSession(string storedDealer) {
            HttpContext.Session.SetString("storedDealer", storedDealer);
        }

测试视图:

var storedDealer = "";

$(document).ready(function () {
    let dealerId = @Model.DealerID;
    if (0 < dealerId.length) {
        $("#DealerID option[value='dealerId'']").attr('selected', 'selected');
        if(storedDealer==""&&"@(string.IsNullOrEmpty(Context.Session.GetString("storedDealer")))"!=True)
        {
            storedDealer = "@Context.Session.GetString("storedDealer")";
        }
        $('#dealershipName').val(storedDealer);
    }
    $('#DealerID').on("change", function () {
        storedDealer = this.value;
        $.ajax({
                            type: "GET",
                            url: "SetSession",
                            data: {storedDealer:$("#IdSelectIdEmpleado").val()},
                        });
    });
});

相关问题