我正在学习javacript,而我正准备开始做一些非同步的事情。以下是我的任务要点:
我的HTML代码如下所示:
<a id='nine' onclick="SendToServer('nine');">Nine</a>
然后我想要一种方法,在Javascript中,发回给服务器点击了#9。
function SendToServer(id)
{
//Send that a#nine was clicked back to server
}
然后我想在c#中使用某种处理函数来更新数据库中的条目。
public void GetMessageFromJSHandler(int id)
{
Item[x][y] = id;
}
我不希望页面重新加载,我不希望在页面上进行任何更改,我想在直接的javascript中执行此操作,以便我可以了解它是如何工作的。
这是一个很好的资源:http://msdn.microsoft.com/en-us/library/ms178210.aspx我最终根据自己的需要改变了这个例子。所有Js都非常直截了当。
答案 0 :(得分:1)
那么,在你的问题的背景下,你走在正确的轨道上。您可以使用此示例:http://www.devx.com/DevX/Tip/17500来查看如何填充SendToServer函数
GetMessageFromJSHandler可能会被IHttpHandler的实现者的ProcessRequest方法调用,至少在最简单的场景中。
但这种做事方式实际上是出于学术目的,学习管道。在生产环境中,使用框架会更好。我个人的选择是客户端上的jquery和服务器上的ASP.NET MVC,但是如果你喜欢“常规”ASP.NET(也就是webforms),那么请查看MS Ajax库以查看更简单的方法。可扩展的&amp;可维护的时尚。
答案 1 :(得分:1)
您可以使用WebMethod属性标记页面方法,以便在客户端为它们创建存根。这是一个example。 你可以做的另一件事是使你的页面方法静态,并使用jQuery的ajax()函数调用它。 Here is how this way works
答案 2 :(得分:1)
jQuery的:
function SendToServer(id)
{
$.ajax({
url: "/GetMessageFromJSHandler",
type: "POST",
data: { 'id': id }
}):
}
答案 3 :(得分:1)
function SendToServer(id){ var pageUrl =“SamplePage.aspx?callback = true&amp; ItemId =”+ item if(window.XMLHttpRequest) { var xmlRequest = new XMLHttpRequest(); } 其他 { var xmlRequest = new ActiveXObject(“Microsoft.XMLHTTP”); } xmlRequest.open(“POST”,pageUrl,false); xmlRequest.setRequestHeader(“Content-Type”,“application / x-www-form-urlencoded”); xmlRequest.send(NULL); }
On pageLoad you just check the callback flag and call your function
if(Request.QueryString["callback"].ToString() == "true")
{
string id = Request.QueryString["ItemId"].ToString()
GetMessageFromJSHandler(int id);
}