ASP.net Javascript Postback

时间:2010-08-30 05:06:14

标签: c# javascript postback

我正在学习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都非常直截了当。

4 个答案:

答案 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);
   }