如何将字符串从javascript传递到服务器?然后从asp.net web表单中的服务器获取返回值
本文关键字:服务器 web net asp 表单 返回值 获取 然后 javascript 字符串 | 更新日期: 2023-09-27 18:01:07
我有这个模态。在表单标签内
<div id="Incoming_Call" class="modal fade" role="document">
<asp:Label runat="server" id="Caller_id" Text="Incoming Call"</asp:Label>
</div>
当模式显示时,我想更改标签文本
<script>
string id = "temporary value"//javascript has this value on clientside.
// i don't have this value on page load but after some event triggers.
$('#Incoming_call').on('shown', function(){
id="zetawars@hotmail.com";
var text = '<%= generatestring(id)%>';
$('#<%=Caller_id.ClientID%>').html = id;
});
</script>
在字符串从id="temporary Value"
变为id="zetwars@hotmail.com"
或其他之后,我需要将id
变量发送到服务器端的函数generateString()
这是在服务器端。
public string generateString(string id)
{
id = // does some processing;
return id;
}
所以,我想向服务器端发送一个javascript变量,然后服务器必须进行一些处理并返回值。javascript变量在页面加载时还没有准备好。所以我不能在<%%>
这些标签中传递它并获得一个新的值。它只会将"临时值"作为字符串传递,而不会传递新值。
从javascript调用服务器端方法非常简单。您可以使用jQuery $.ajax
函数和[WebMethod]
来完成此操作
代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
public static string generateString(string id)
{
System.Diagnostics.Debugger.Break();
return String.Format("Response from server for - {0}.Call time - {1}",id,DateTime.Now.ToString("HH:mm:ss"));
}
.ASPX:
<head runat="server">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
var id = "temporary value";
$("#btnMakeAjaxCall").click(function () {
MakeAjaxCall();
});
function MakeAjaxCall() {
$.ajax({
type: "POST",
url: "AjaxCallExample.aspx/generateString",
contentType: "application/json;charset=utf-8",
data: '{id:"' + id + '"}',
dataType: "json",
success: function (data) {
var caller = '<%: Caller_id.ClientID %>';
$("#" + caller).text(data.d)
},
error: function (errordata) {
console.log(errordata);
}
});
}
});
</script>
</head>
<body>
<form id="form1" runat="server">
<input type="button" id="btnMakeAjaxCall" value="Make AJAX call" />
<asp:Label ID="Caller_id" runat="server" Text="Incoming Call"></asp:Label>
</form>
</body>
您可以对服务器进行ajax调用并使用返回的值。您可以在每次显示模态时进行ajax调用或只要您准备好从服务器获取结果,就可以进行ajax调用,这样您就可以进行ajax调用,并将结果存储在页面上的隐藏变量或其他已经定义的变量中,然后以模态使用该变量。
对服务器进行ajax调用的jQuery代码要进行ajax调用,您需要在页面中添加对jQuery的引用。
$.ajax({
url: "/controller_name/method_name",
type: "POST",
data: { var1:var1},
success: function (response) {
//use response here
},
error: function () {
alert("Some unexpected error occured. Please try again.");
}
});
这是你可以实现你想要的方式,让我们知道你在编码方面也需要帮助。