【问题标题】:Persistent TextBox After之后的持久文本框
【发布时间】:2014-08-07 15:13:04
【问题描述】:

这应该很容易,但我不知道该怎么做。我有一个文本框,用户将在其中键入要搜索的名称。然后,用户必须提供一些附加信息,例如从下拉列表中选择该人居住的州。选择州后,我正在做一个 Ajax 帖子以获取该州内的城市列表。问题是,一旦加载了城市,我就丢失了在文本框中输入的值。我怎样才能使这个文本框持久化,这样我就不会失去价值?

function ValueSelected(state, city, zip) {
        var SelectedState = state;
        var SelectedCity= city;
        var ZipCode= zip;
        if (SelectedState.length > 0) {
            // var url = '@Url.Action("SetState", "FindPerson")';
            $.ajax({
                url: '@Url.Action("SetState", "FindPerson")',
                type: 'POST',
                datatype: 'text',
                data: { "SelectedState": SelectedState, "SelectedCity": SelectedCity, "ZipCode": ZipCode},
                cache: false,
                // contentType: 'application;text;charset=UTF-8',
                success: function (e) {
                    window.location.href = window.location.href;
                },
                error: function (e) {
                    alert('error');
                }
            });
        }
    }

2014 年 8 月 7 日更新:

我编写了一个函数,当用户从下拉列表中选择某些内容时,该函数会将文本框值添加到 cookie。然后,我检查 cookie 以查看加载页面时 cookie 中是否有内容。我将 cookie 设置为 30 分钟后过期。

 function setCookieInfo(name, value) {
        if (name != null && name != "") {
            setCookie(name, value, 24);
        }
    }

【问题讨论】:

  • 尝试注释掉window.location.href = window.location.href,我会说这会重新加载您的页面并且您的价值会丢失
  • 我将 IEnumerable 和 IEnumerable 添加到 ViewBag。如果我不进行刷新,我将无法看到它们。
  • 成功函数中的参数将包含您从操作返回的任何内容,甚至是部分视图,例如stackoverflow.com/questions/3490059/…

标签: c# asp.net asp.net-mvc-3


【解决方案1】:

由于您正在执行所有这些客户端操作,因此我不建议您执行 window.location.href,因为这不会保留任何客户端设置。相反,您应该处理客户端上的所有内容或在视图中设置表单并调用(注意我在这里使用 JQuery)$("#form").submit() 来回发值。在该表单中,您可以使用隐藏字段来回发所有选定的值,并从服务器重新加载它们。

此外,当您执行 AJAX 请求时,成功会返回任何内容,因此您的操作可以返回:

return PartialView("XYZ");

该 HTML 将被返回,您可以将其附加到 UI。您还可以返回 JSON,并构建包含城市的 <select> 项目。

使用window.location.href = ... 不好,因为这会不断向服务器发出 get 请求,并且您必须在查询字符串中传递信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多