1

这是我的场景:我有一个可以合并 tiff 文件的 asp 网站。所以,要做到这一点,我需要使用 ac# 函数,并在 javascript 事件之后调用它。C#是这样的:

public void mergeImages(string initialUrl, string lastImageUrl)
        {....}

我创建了两个这样的隐藏字段:

 <input type="hidden" id="hi1" value="D:\\ProvaUpload\\1.tif" />

获取要在函数中传递的值,因为我不知道我可以通过哪种方式将 js 变量传递给它。我以这种方式调用该函数:

'<%mergeImages(par1,par2); %>';

我可以通过哪种方式将变量值传递给函数?

4

4 回答 4

5

WebMethod用Attribulte装饰方法:

[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) {

        }
    });
于 2013-08-19T08:49:45.583 回答
2

请参阅 stackoverflow 线程。 ASP.NET - 将 JSON 从 jQuery 传递到 ASHX

这将帮助您了解使用处理程序文件 (ashx) 来执行 ajax json 请求。

您的要求可以通过这个概念来实现。

您不需要将 cs 方法调用到 javascript 中。您应该在任何类型的处理程序文件(例如 ashx、asmx 或任何其他服务)上发布使用 ajax。

于 2013-08-19T08:43:57.617 回答
1

实现这一目标的简单方法之一:-

由于您已经有两个隐藏字段但必须为其添加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);
}
于 2013-08-19T09:44:33.240 回答
1

没什么可做的,你只需要一个额外的按钮,它将隐藏在输出中:

<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 调用,

于 2013-08-19T11:51:10.767 回答