【问题标题】:Keep hiddenField value on postback in MVC在 MVC 的回发中保留 hiddenField 值
【发布时间】:2015-08-11 07:40:26
【问题描述】:

我在_layout 文件中有隐藏字段。当用户登录时,我正在检查数据库中的值。如果是真的向用户弹出一个对话框。如果用户关闭对话框,我将不会显示他注销的消息框。所以我就是这样做的。

_布局

@Html.Hidden("BadAddressWarning","")

layout.js

    $(function () {
        if ($("#BadAddressWarning").val() == "") {
        $.ajax({
            url: '../Address/CheckPrimaryAddressGood',
            type: "Get",
            ....
           success: function(data) {
            if (data != "") {                
            $("#dialogCheckAddress").dialog({
                  ...
            });
            $("#dialogCheckAddress").dialog("open");
            $("#dialogCheckAddress").on("dialogbeforeclose", function(event, ui) {
                   $("#BadAddressWarning").val("false");
            });
            }

            },
            failure: function(errMsg) {
                alert(errMsg);
            }
        });
    }
});

如果我回帖。我输了$("#BadAddressWarning").val()。我想保留那个值。

【问题讨论】:

  • 在强制性的“MVC 中没有回发”之外,隐藏字段需要位于表单标签内,才能成为 POST 集合的一部分。将它保存在 POST 集合中允许您将值发送回新视图。从您描述的声音来看,它没有包含在您的表单标签内。您可以使用 javascript 将此值复制到提交时表单中的实际隐藏表单字段中。或选项 2,当您需要保留请求之间的值时,将其放在会话或 cookie 中。

标签: jquery asp.net asp.net-mvc postback


【解决方案1】:

您明确地传递了一个空字符串作为值。相反,请执行以下操作:

@Html.Hidden("BadAddressWarning", Request["BadAddressWarning"])

甚至更简单:

@Html.Hidden("BadAddressWarning")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多