2011-06-07 28 views
1

我有一个模式/对话框有两个按钮,“确定”和取消。当我点击“确定”时,我想将这些数据发送到服务器上的某个功能。我怎样才能做到这一点?任何人都可以给我一些信息/例子吗?我相信我将不得不使用“$ .post”,但是又如何将它发送到特定页面的功能?如何发送数据在后面的代码中的功能

UPDATED ...仍然无法到达代码功能。

$('#dialog').dialog({ 
        modal: true, 
        //autoOpen: false, 
        bgiframe: false, 
        closeOnEscape: false, 
        width: 520, 
        height: 360, 
        open: function(event, ui) { 
          jQuery('.ui-dialog-titlebar-close').hide(); 
          $('#dialog').dialog('option', 'position', 'center'); }, 
        buttons: [ 
         { 
          text: "Cancel", 
          click: function() { $(this).dialog("close"); } 
         }, 
         { 
          text: "Send", 
          click: function(){ 
           $.ajax({ 
            type: 'POST', 
            url: 'test.aspx/GetName', 
            data: '{name:"' + name + '}', 
            contentType: "application/json; charset=utf-8", 
            dataType: "json", 
            async: false 
           }); 
          } 
         }], 
        draggable: false }); 
      return false; 


<System.Web.Services.WebMethod()> _ 
Public Shared Function GetName(ByVal name As String) As String 
    Return "Hello " & name & Environment.NewLine & "The Current Time is: " & _ 
      DateTime.Now.ToString() 
End Function 
+0

我想你想达到函数SendEmail?您需要将url更改为'test.aspx/SendEmail'。 – thomasvdb 2011-06-07 21:03:31

+0

对不起,这是一个错误。仍然不能进入“GetName”功能。我的网页上是否需要某种Ajax设置? – jack 2011-06-07 21:10:14

+0

你可以在async之后添加这个作为测试:',success:function(data){alert(data.d); }' – thomasvdb 2011-06-07 21:17:37

回答

3

您可以使用jQuery这一点。我已经实施了几次,它的功能就像一个魅力。 你需要在你定义一个静态的WebMethod代码隐藏这样的:

C#

[WebMethod] 
public static void SayHello(string name) { 
    // say hello 
} 

VB.NET

<WebMethod()> _ 
Public Shared Function SayHello(name As String) 
    ' say hello 
End Function 

现在你可以使用jQuery称之为:

$.ajax({ 
    type: "POST", 
    url: 'yourPage.aspx/SayHello', 
    data: "{name: '" + aValue + "'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    async: false, 
    success : function(data) { 
     // in case you would use a return value in your webmethod 
     alert(data.d); 
    } 
}); 

正如你所看到的,你可以定义你想要的任何页面,它不需要成为你的当前页面。只要它包含静态webmethod,你就可以走了!

+0

如何在vb.net中执行此操作?我没有使用MVC。 – jack 2011-06-07 19:03:13

+0

它不是MVC,只是C#和WebForms:o)你只需要在VB中编写SayHello方法。 Javascript代码保持不变; o) – thomasvdb 2011-06-07 19:05:36

+1

我已经添加了一个VB.NET代码示例。 – thomasvdb 2011-06-07 19:10:14

相关问题