在不刷新页面的情况下,从JavaScript(客户端)向服务器(asp.net)发送值的最佳方法是什么?
我想将数据插入数据库,但我不想刷新页面或更改其上的任何数据。
答案 0 :(得分:8)
简单方法:
1-将jquery导入您的页面
2-在页面的cs文件中创建ur函数,如下所示
[WebMethod]
public static string Save(string param1,string param2)
{
string result;
//your code must return somthing string
return result;
}
3-在您的aspx页面中创建您的功能
function save(){
var param1 = 'value 1 you need to send to the server should be string';
var param2 = 'value 2 you need to send to the server should be string';
$.ajax({
type: "POST",
url: "pagename.aspx/Save",
data: "{param1: '"+ param1 +"' , param2 :'"+ param2 +"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function(result){
//Successfully gone to the server and returned with the string result of the server side function do what you want with the result
}
,error(er)
{
//Faild to go to the server alert(er.responseText)
}
});
}
4-点击按钮
调用此功能我的代码和脚本的更多问题或描述我在这里:)
答案 1 :(得分:2)
一种简单的方法是在页面上使用页面方法或静态方法,并使用jquery从服务器端代码发送或获取数据。这个链接有一个很好的演练
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
答案 2 :(得分:1)
答案 3 :(得分:1)
Ypu必须使用 Ajax 技术,JQuery,Asp.net,YUI以及其他允许您使用Ajax技术的api和库。< / p>
Asp.net中最简单的一个是通过在页面中添加 ScriptManager 和 UpdatePanel 来使用内置的Asp.net Ajax功能
答案 4 :(得分:0)
实际上没有人回答这个问题。因为,“导入jquery”“使用ajax”等都否定了OP要求javascript解决方案的事实。这是javascript中的单行/很容易做到。
在您的javascript中,您只需调用方法:
PageMethods.SomeMethod('test');
你的“SomeMethod”将成为这样的代码背后的代码:
[WebMethod]
public static string SomeMethod(string param1)
{
string result = "The test worked!";
return result;
}
规则: 您必须使用WebMethod属性识别方法背后的代码。它必须是静态的。您必须在页面中注册脚本管理器,如下所示:
<asp:ScriptManager ID="MyScriptManager" runat="server" EnablePageMethods="true" />
由于我正在使用aspx webforms页面来执行一些非常简单的javascript函数,比如检索/存储地理位置,我会根据需要将它放在Form元素中。