2013-03-14 71 views
3

在MVC3中。我有一個按鈕類「開放式deleteRowDialog」當我點擊它進入此javascript:MVC3來自Javascript的調用控制器方法

$(document).on("click", ".open-DeleteRowDialog", function() { 
     var pwd= '@Url.("GeneratePsw","Admin")'; 
     $(".modal-body #pwd").val(pwd); 
     $('#1').modal('show'); 

}) 

我想是調用一個方法(在控制器),誰也返回一個字符串,that's我想在「VAR PWD」保存在模型(視圖),以顯示

的方法(在控制器)是什麼:

public string GeneratePsw() 
     { 


      HomeBridgeEntities ddbb = new HomeBridgeEntities(); 
      SqlConnection Cn = new SqlConnection(((System.Data.EntityClient.EntityConnection)ddbb.Connection).StoreConnection.ConnectionString); 
      SupPassGenerator sup = new SupPassGenerator(Cn); 

      //psw conteins a password from CreateRandomPassword 

      string psw = sup.CreateRandomPassword(9); 


      return psw; 


     } 

謝謝!

+0

你需要使用AJAX。 – SLaks 2013-03-14 15:14:28

+0

請問您可以在AJAX中編寫任何示例?謝謝! – Alsan 2013-03-14 15:16:27

回答

6

撥打ajax調用您的控制器操作方法。您可以使用如下所示的$.get方法。

$(function(){ 
    $(document).on("click", ".open-DeleteRowDialog", function() { 
     var pwd=""; 
     $.get("@Url.Action("Yourcontroller","GeneratePsw")",function(data){ 
      pwd=data; 
      //now do whatever you want with pwd variable; 
     });  
    }) 
}); 

$.get$.ajax方法與類型HTTP GET的簡短形式。

如果您在響應中遇到了緩存數據等問題,您可以在您的get調用中添加唯一的時間戳,以便您不會獲得緩存的結果。您可以使用$.now方法。

$.get("@Url.Action("Yourcontroller","GeneratePsw")?"+$.now(),function(data){ 
    // to do : do something with result 
}); 

另一種方法是在ajaxSetup方法中將緩存屬性值設置爲false。但是這將適用於所有的ajax調用。

+0

非常感謝你!這是完美的! – Alsan 2013-03-14 15:37:36

+0

@Alsan:不客氣。很高興我能幫助:) – Shyju 2013-03-14 15:46:37

2

使用jQuery Ajax和直接調用控制器方法的網址

$(document).on("click", ".open-DeleteRowDialog", function() { 
    var pwd=""; 
    $.get('Yourcontroller/GeneratePsw', function(data){ 
     pwd=data; 
     //now do whatever you want with pwd variable; 
    });  
}) 
+0

謝謝!它運作良好! ;) – Alsan 2013-03-14 15:40:22

+0

@Alsan很高興聽到它:) – 2013-03-14 15:40:56

相關問題