$('#SendEmail').click(function () {
var sel = $('input[type=checkbox]:checked').map(function (_, el) {
return $(el).val();
}).get();
alert(sel);
SetCompanyDetailsPopUp(sel);
})
我在forloop中有多个复选框,Iam在Onclick函数“SendEmail”中获取值,并且还调用了Ajax方法,Ajax方法“SetCompanyDetailsPopUp”也正常工作,但服务器端的参数显示为“null”< / p>
function SetCompanyDetailsPopUp(Email) {
debugger;
$.ajax({
type: "POST",
async: false,
dataType: "json",
url: "/CRMLogin/GeneratePass",
data: { "id": Value },
success: function (result) {
var data = '';
alert(result);
//alert(result);
//alert('sucessfully generated');
}
});
}
调试Ajax函数后的“Email”参数中的值为
阵列(2) 0: “1” 1: “2” 长度:2 的原 : 阵列(0)
服务器端方法
public ActionResult GeneratePass(string id)
{
string[] arr = id.Split(','); ; // Initialize.
// Loop over strings.
foreach (string s in arr)
{
forgotPassword(s);
}
return Json(arr, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
从我的角度来看问题是你没有 在Post方法中需要的控制器方法中的[FromBody]属性 请检查以下链接: https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
所以代码看起来应该是这样的:
[HttpPost]
public ActionResult GeneratePass([FromBody] string id)
{
string[] arr = id.Split(','); ; // Initialize.
// Loop over strings.
foreach (string s in arr)
{
forgotPassword(s);
}
return Json(arr, JsonRequestBehavior.AllowGet);
}
答案 1 :(得分:-1)
使用此
更改您的ajax代码 function SetCompanyDetailsPopUp(Email) {
var Value = Email.value;
debugger;
$.ajax({
type: "POST",
async: false,
dataType: "json",
url: "/CRMLogin/GeneratePass",
data:'{ id:" '+ Value + ' "}', // May be i am right, Here is problem
success: function (result) {
var data = '';
alert(result);
//alert(result);
//alert('sucessfully generated');
}
});
}