在 MVC 的回发中保留 hiddenField 值
Posted
技术标签:
【中文标题】在 MVC 的回发中保留 hiddenField 值【英文标题】:Keep hiddenField value on postback in MVC 【发布时间】: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 中。 【参考方案1】:您明确地传递了一个空字符串作为值。相反,请执行以下操作:
@Html.Hidden("BadAddressWarning", Request["BadAddressWarning"])
甚至更简单:
@Html.Hidden("BadAddressWarning")
【讨论】:
以上是关于在 MVC 的回发中保留 hiddenField 值的主要内容,如果未能解决你的问题,请参考以下文章
Google 应用内付款:如何处理 Google 的回发 JWT