我可以调用没有jQuery参数的ASP.NET函数,如下所示 (default.aspx.cs)
public string GetaString()
{
return "New String";
}
jQuery (default.aspx)
$(function () {var returnStr = '<%=GetaString() %>'; };
但是当使用参数调用函数时,我没有得到任何值。
public string GetaString(string str1)
{
return "New String"+ str1;
}
$(function () {var Company = "test";var returnStr = '<%=GetaString(Company) %>'; };
抱歉小姐的消息。但它在传递jquery变量时存在问题。
如何将参数传递给asp.net函数并获取返回值。 UPDATE 实际代码:
$(document).ready(function () {
$("#txtCompany").focusout(function () {
var Company = $("#txtCompany").val();
var returnStr = '<%=GetNameString("Company") %>';
var availableTags = returnStr.split('|');
$("#txtName").autocomplete({
source: availableTags
});
});
});
我正在从txtCompany中的值填充txtName的自动完成功能。 它在给出直接参数时起作用。
答案 0 :(得分:0)
如果要将某些值传递给服务器端,则参数名称应相同。在你的情况下,你可以尝试这样的东西
$(function () {var str1="some value"; var returnStr = '<%=GetaString(str1) %>'; };
其他代码相同。我假设你有代码实际上可以调用服务器端函数。
答案 1 :(得分:0)
Ruchan ,
your code is fine , no problems are there
i just run the code on my pc and its return the "New String Test" value
please have below what i run and its return correct value so let me know what exactly you want ?
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<title></title>
<script>
var returnStr = '<%=GetaString("Test") %>';
alert(returnStr);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
答案 2 :(得分:0)
我不认为你可以像这样从Jquery调用服务器端功能。之后传递参数问题。
你不能像这样在Jquery中调用服务器端功能
$(function () {var returnStr = '<%=GetCompString("Test") %>'; };
<强>解决方案强>
如果您需要调用仅服务器方法,请在服务器端使用WebMethod,在客户端使用ajax。见this
$。AJAX({ 类型:“POST”, url:“MessagePopup.asmx / SendMessage”, 数据:“{subject:'”+ subject +“',message:'”+ message +“pupilId +”'}“, contentType:“application / json; charset = utf-8”, dataType:“json”, 成功:函数(msg){ //在这里做一些有趣的事 } });
要调用ASP.NET AJAX“ScriptServices”和页面方法,您需要使用完整的$ .ajax()语法:link
看到这篇文章
How to call server side function using jquery wth out page refresh?
答案 3 :(得分:0)
您正在使用的语法<%= %>
是在页面呈现期间调用Response.Write
函数的快捷方式 - 有关详细信息,请查看此MSDN link。请注意,这是服务器端部分,它实际上将输出写入呈现的HTML ,然后将其发送到客户端。在您的第一个场景中:
var returnStr = '<%=GetNameString("Company") %>';
页面呈现到<%= %>
部分,使用参数GetNameString
调用函数"Company"
并将其输出写入页面。然后生成的标记被发送到客户端。
所以最终当页面到达客户端时,它看起来像这样:
$(document).ready(function () {
$("#txtCompany").focusout(function () {
var Company = $("#txtCompany").val();
var returnStr = 'New StringCompany'; // or whatever the output of the GetNameString is
var availableTags = returnStr.split('|');
$("#txtName").autocomplete({
source: availableTags
});
});
});
现在执行了javascript。显然,它没有关于服务器端功能的概念,而只是一个字符串文字。
如果你真的想从客户端代码调用服务器端函数,你应该做其他人在这里建议的 - 实现HttpHandler,web服务或页面方法并对它进行Ajax调用。