Я пытался заставить C # и JS общаться друг с другом через скрытый ввод. Я просмотрел различные форумы и коды, но ни у одного из них, похоже, нет именно этой проблемы. У многих из них была синтаксическая ошибка, и я попытался отладить это. В основном это линия
document.getElementById("Hidden1").value = str;
это не похоже на работу. Я попытался поставить предупреждающие сообщения до и после этой строки. Если поставить предупреждение раньше, всплывающее окно всплывет, но после него не всплывает, что заставляет меня заподозрить эту строку кода. При запуске в Visual Studio 2010 через браузер Chrome сообщения об ошибках не отображались. Если кто-то может помочь с этим вообще, это было бы очень ценно.
Если я удалю панели обновления, они все равно не будут работать. Сначала это было то, что я попробовал, но я подумал, что это могло произойти, когда сайт обновлялся во время нажатия кнопки, поэтому я попытался реализовать свойство панели обновления AJAX.
ASP.NET CODE
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication10._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
<div>
<input id="Hidden1" type="hidden" name="Hidden1" runat="server" value="replaceme" />
<asp:Button ID="Button1" runat="server" OnClientClick="abc()" Text="Button"
onclick="Button1_Click" />
</div>
<div>
</ContentTemplate>
</asp:UpdatePanel>
<script type="text/javascript">
function abc() {
var str = "value";
document.getElementById("Hidden1").value = str;
}
</script>
</div>
</asp:Content>
C # CODE
protected void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Hidden1.Value);
}