在asp.net中用javascript传递调用c#behin函数的变量值

Pass variable value calling c# behind function with javascript in asp.net

本文关键字:c#behin 调用 函数 变量值 asp net 中用 javascript      更新时间:2023-09-26

这是我的场景:我有一个可以合并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);
}