[英]MVC3 Calling controller method from Javascript
在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;
}
谢谢!
对控制器操作方法进行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方法中将cache属性值设置为false。 但这将适用于所有ajax调用。
使用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;
});
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.