将参数传递给.net中的jQuery加载对话框

时间:2018-10-01 13:19:17

标签: javascript jquery asp.net-core-mvc

我有这个jquery函数,它加载一个对话框并在控制器中调用该动作,但在控制器中没有到达值参数(val)。

正确调用该动作是因为打开对话框将数据加载到视图模型中。

我已经创建了一个用于传递数据的对象(ActivityParameterVO actPar)

public class ActivityParameterVO
{
public decimal EOA_EVEOPTID { get; set; }
public decimal EOA_ACTID { get; set; }

......

}

这是jquery函数

parameters = function (EVEOPTID, ACTID) {

var val = {
'EOA_EVEOPTID' : EVEOPTID,
'EOA_ACTID' : ACTID
};

$("#dialog").dialog({

autoOpen: true, modal: true, height: 800, width: 1000, resizable: false,
open: function () {
console.log(JSON.stringify(val));
$.ajax({
type: 'POST',
data: JSON.stringify(val),
url: '/Event/LoadParameters',
contentType: "application/json"
}).done(function (res) {
$("#dialog").html(res);
$('#dialog').dialog('open');
});
},
position: {
my: 'top', at: 'top'
},
buttons: [
{
html: "Cancel",
"class": "btn btn-default",
click: function () {
$(this).dialog("close");
}
},
{
html: "<i class='fa fa-check'></i>&nbsp; OK",
"class": "btn btn-primary",
click: function () {
$(this).dialog("close");
}
}
]
})
};

动作方法

public IActionResult LoadParameters([FromBody] ActivityParameterVO actPar)
{
EventActivityParametersViewModel eventActivityParameters = this.eventStructureBLL.GetParameters("ITA", actPar1);


return PartialView("~/Views/Event/Parameters.cshtml", eventActivityParameters);
}

1 个答案:

答案 0 :(得分:2)

我只是忘了用[httpPost]动作方法标记

**[httpPost]**
public IActionResult LoadParameters([FromBody] ActivityParameterVO actPar)
{
EventActivityParametersViewModel eventActivityParameters = this.eventStructureBLL.GetParameters("ITA", actPar);


return PartialView("~/Views/Event/Parameters.cshtml", eventActivityParameters);
}

现在可以使用