2012-09-03 53 views
0

我在ASP.Net中有一個對話框,c#應用程序。這個對話框有一個文本框。當我選擇保存時我想調用一個來自C#的函數進行一些驗證在數據庫中,然後在javascript/jquery中得到結果。如果插入的值爲true,我想關閉對話框以保持打開狀態,但是我無法在c#函數中接收到true後關閉對話框。下面是代碼:從javascript/jquery中調用ac#方法並得到結果

ASCX:

<div id="popup" title="Choose Delegate"> 
     <label>Delegate<label><input type="textbox" value="" name="inputD" id=="inputD"/> 
    </div> 

的Javascript:

$('#btnAdd').click(function(e){ 
$('#divPopup').slow("show"); 
$('#divPopup').dialog({ 
     height:150, 
     width:300, 
     modal:true, 
     buttons:{ 
       "close":function(){$(this).dialog("close");} 
       "save":function(){ 
        var obj=document.getElementid("inputD"); 

        $.ajax({ 
        type: "POST", 
        url: "add.aspx/check", 
        data: "{delegate: '" + obj.Value+"'}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (msg) { 
          rez= "OK"; 
          $(this).dialog("close"); 
         }, 
        failure: function() {alert("FAIL"); }});     } 
     }); 
     } 

C#:

[WebMethode] 
public static Boolean check(string delegate) 
{ 
    ..... 

    return true; 

    } 

C#梅索德返回corect值。

我也試試這個:

 $('#btnAdd').click(function(e){ 

      $('#divPopup').slow("show"); 
      $('#divPopup').dialog({ 
         height:150, 
         width:300, 
         modal:true, 
         buttons:{ 
      "close":function(){$(this).dialog("close");} 

      "save":function(){ 
        var obj=document.getElementid("inputD"); 
        var rez ; 

        $.ajax({ 
        type: "POST", 
        url: "add.aspx/check", 
        data: "{delegate: '" + obj.Value+"'}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (msg) { 
          rez= "OK"; 
                 }, 
        failure: function() {alert("FAIL"); } 
       });  

        if (rez="OK") 
          $(this).dialog("close"); 

     } 
     }); 

但它不會看到在這種情況下,蘇亞雷斯值。

謝謝!

回答

0

您需要服務器端的網絡服務。 (最好是REST)

http://restsharp.org/是一個易於使用的庫。

查看this question瞭解更多信息。

在前端你做一個AJAX調用你REST API(我看你使用jquery,這樣就不會那麼難;))

1

您可以在「保存使用AJAX調用「:功能(E),只是檢查返回值,如果真的關閉對話框,否則保持打開

Ajax調用的實現非常簡單,我讓你搜索該:)

+0

我修改後的代碼使用Ajax: – user1577242

+0

我解決,我必須在ajax代碼之前聲明一個變量var dlg = $(this);然後在成功之後我編寫dlg.dialog(「close」); – user1577242