3

在 MVC3 中。当我点击它时,我有一个按钮类“open-deleteRowDialog”转到这个javascript:

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

})

我想要的是调用一个方法(在控制器中),该方法必须返回一个字符串,这就是我想保存在“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;


        }

谢谢你!

4

2 回答 2

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是一种 HTTP GET 类型的简短$.ajax方法。

如果您在响应中遇到缓存数据等问题,您可以在get调用中添加唯一时间戳,这样您就不会获得缓存结果。您可以使用$.now方法。

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

另一种方法是在ajaxSetup方法中将缓存属性值设置为 false。但这将适用于所有 ajax 调用。

于 2013-03-14T15:15:56.837 回答
2

使用 jQuery ajax 并直接作为 url 调用控制器方法

$(document).on("click", ".open-DeleteRowDialog", function () { 
    var pwd="";
    $.get('Yourcontroller/GeneratePsw', function(data){
        pwd=data;
        //now do whatever you want with pwd variable;
    });    
})
于 2013-03-14T15:18:01.940 回答