在asp.net中用javascript传递调用c#behin函数的变量值
Pass variable value calling c# behind function with javascript in asp.net
这是我的场景:我有一个可以合并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);
}
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- 在asp.net中用javascript传递调用c#behin函数的变量值