【问题标题】:ASP.Net Server.Transfer and HiddenfieldASP.Net Server.Transfer 和 Hiddenfield
【发布时间】:2017-12-26 19:48:38
【问题描述】:

我尝试在 Onclientclick 上将字符串值保存到我的隐藏字段,但我认为它不起作用,因为 Server.Transfer();

如果我更改下拉值,我的回发(Dropdownlist)只有一个控件,我最后在我的代码中得到了工作 Server.Transfer。

代码如下:

$(document).ready(function () {

    alert($("[id*=hdnSelectedDiv]").val());
});

function SaveDiv(value) {
    $("[id*=hdnSelectedDiv]").val(value);
}

   <asp:LinkButton runat="server" CssClass="card-link" ID="lnkGoToLogin" OnClientClick="SaveDiv('dvLogin');return false;" meta:resourcekey="lnkGoToLoginRes"></asp:LinkButton></p>

这是我的 OnSelectedIndexChanged :

   CurrentSession.SetCurrentLanguage(ddl.SelectedValue);
        ddl.SelectedValue = CurrentSession.CurrentLanguage.IetfLanguageTag;
        Thread.CurrentThread.CurrentCulture = new CultureInfo(ddl.SelectedValue);
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(ddl.SelectedValue);
        Server.Transfer(Request.Url.AbsolutePath);

文档就绪警报是我的值始终为空。我尝试在我的文档上设置值并提醒它正在工作的值。但是如果我单击链接按钮并在回发后选择下拉列表中的任何选项,我的值是空的。

我不想用 Response.Redirect() 怎么解决这个问题;

【问题讨论】:

  • 无论您使用什么,回发仍然发生并且页面会刷新,这意味着您需要重新填充您手动设置的 DOM 中的任何内容。如果您不希望这样,您可以考虑使用 XMLHttpRequest (AJAX) 来发出请求,而无需离开匹配项。
  • 我不太明白,我只想在回发后从隐藏字段中获取价值。回发之前我将我的价值保存在我的隐藏文件中。为什么我需要重新填充手册?
  • 因为您正在转移到另一个页面。无论您是重定向还是转移都无关紧要。无论哪种方式,你都会得到一个新页面,带有一个新的 DOM。
  • 我现在明白你了 :) 你有权利..我怎样才能保持价值,你有什么建议吗?

标签: asp.net hidden-field


【解决方案1】:

该隐藏字段必须具有name 属性。

当回发发生时,在服务器代码中,您可以检索发布的值。现在是处理它们的时候了——因为在Server.Transfer 开始执行之后,源上下文就消失了。如果您需要目标请求(转移到的处理程序)中的这些值,则需要将它们传递给它。您的选择是:持久存储(例如数据库)、会话(在您的情况下可能是最好的)、查询。

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2011-07-11
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    相关资源
    最近更新 更多