从javascript将参数传递给C#中代码隐藏中的一个函数
我试图将参数传递给javascript中C#代码中的一个函数从javascript将参数传递给C#中代码隐藏中的一个函数,c#,javascript,C#,Javascript,我试图将参数传递给javascript中C#代码中的一个函数 <script type="text/javascript"> $(document).ready(function () { $("#some_id").click(function () { var id = document.getElementById('HiddenField2'); var a = <%=btn_Click(id)%
<script type="text/javascript">
$(document).ready(function () {
$("#some_id").click(function () {
var id = document.getElementById('HiddenField2');
var a = <%=btn_Click(id)%>;
});
});
</script>
<asp:HiddenField ID="HiddenField2" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "item_id")%>' />
code behind
public string btn_Click(String item_id)
{
/*do some thing*/
return null;
}
$(文档).ready(函数(){
$(“#某些id”)。单击(函数(){
var id=document.getElementById('HiddenField2');
变量a=;
});
});
代码隐藏
公共字符串btn\u单击(字符串项\u id)
{
/*做点什么*/
返回null;
}
但这段代码总是给我上下文错误。该id未在此上下文中定义。
一些人能告诉我我做错了什么吗?首先,
varid
是javascript,而
中的代码是C。你不能像那样在两种语言之间传递变量
其次,在本例中,id
的值将是C#无论如何都不能使用的DOM元素。如果要在代码隐藏中获取HiddenField2的值,可以使用HiddenField2.value
第三,因为您使用的是ASP.net,而不是jQuery的
。click
处理程序。您应该使用服务器上的onServerClick
属性将按钮单击行为连接到btn\u click
当您的浏览器将数据发布回ASP.net时,回发将触发C中的按钮单击事件
我不明白为什么你在这里使用Hydfield,所以我的建议不要考虑它< /P>
解决方案1:
首先,您可以在btn_中提取代码,单击http处理程序(*.ashx in asp.net),然后通过使用jQuery等js框架使用Ajax将数据发送到http处理程序,http处理程序返回的数据可以由js处理
解决方案2:
如果btn_Click中的代码与您的页面相关,只需使用ajaxget方法,数据将发送到您的页面,您的数据返回的数据也将由js处理
最后,如果您是web新手,我建议您学习或实现asp.NETMVC,在我看来,它比asp.NETWebForm更灵活