在asp.net中用javascript传递调用c#behin函数的变量值
本文关键字:c#behin 调用 函数 变量值 asp net 中用 javascript | 更新日期: 2023-09-27 18:27:35
这是我的场景:我有一个可以合并tiff文件的asp网站。因此,要做到这一点,我需要使用一个c函数,它是在javascript事件之后调用的。c#是这样的:
public void mergeImages(string initialUrl, string lastImageUrl)
{....}
我创建了两个这样的隐藏字段:
<input type="hidden" id="hi1" value="D:''ProvaUpload''1.tif" />
获取要在函数中传递的值,因为我不知道用哪种方式可以将js变量传递给它。我用这种方式调用函数:
'<%mergeImages(par1,par2); %>';
我可以用哪种方式将变量值传递给函数?
用WebMethod
属性装饰方法:
[WebMethod]
public void mergeImages(string initialUrl, string lastImageUrl)
{....}
获取隐藏字段,并通过点击按钮将其传递给Jquery Ajax call
var hdn1 = $('#hi1').val();
var hdn2 = $('#hi2').val();
var parameters = '{initialUrl:' + hdn1 + ', lastImageUrl:' + hdn2 + '}';
$.ajax({
type: "POST",
url: "page.aspx/mergeImages",
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
}
});
参考stackerflow线程。ASP.NET-从jQuery向ASHX 传递JSON
这将帮助您理解如何使用处理程序文件(ashx)来执行ajax json请求。
这个概念可以满足您的需求。
您不需要将cs方法调用到javascript中。您应该使用ajax在任何类型的处理程序文件上发布,例如ashx、asmx或任何其他服务。
没什么可做的,你只需要带一个额外的按钮,它将隐藏在输出中:
<asp:button id="btnGetAndPassvalues" runat="server" Text="hide" Onclick="btnGetAndPassvalues_Click" Style="display:none"/>
现在javascript函数应该如下所示:
<script>
$('[id$=btnUpload]').live('click', function (e) {
// code to finish Upload prosess
$('[id$=btnGetAndPassvalues]').click();
});
</script>
仅此而已,在点击事件中获取隐藏字段的值:
protected void btnGetAndPassvalues(Object sender,EventArgs e){
string hd1=hiden1.Value;
string hd2=hiden2.Value;
}
或者您可以进行AJAX调用、
实现这一点的简单方法之一:-
由于您已经有两个隐藏字段,但必须向其中添加runat
属性,因此您可以在服务器端获取它们的值。比方说:-
<input type="hidden" id="hi1" value="D:''ProvaUpload''1.tif" runat="server" />
<input type="hidden" id="hi2" value="D:''ProvaUpload''2.tif" runat="server" />
并制作一个隐藏按钮:-
<asp:button id="btnhidden" runat="server" Text="hide" Onclick="btnhidden_Click" Style="display:none"/>
现在你可以点击javascript函数中的按钮:-
function UploadFinished()
{
//your JS code:-
// After finish uploading ..Click the button .. i have used jquery for simplicity:-
$('input[id$="btnhidden"]').click();
}
现在在你的代码后面:-
protected void btnhidden_Click(Object sender,EventArgs e)
{
// you can get hidden fields values here ....
string val1=hi1.Value;
string val2=hi2.Value;
// Call your merge function here :-
mergeImages(val1,val2);
}