我有这个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> 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);
}
答案 0 :(得分:2)
我只是忘了用[httpPost]动作方法标记
**[httpPost]**
public IActionResult LoadParameters([FromBody] ActivityParameterVO actPar)
{
EventActivityParametersViewModel eventActivityParameters = this.eventStructureBLL.GetParameters("ITA", actPar);
return PartialView("~/Views/Event/Parameters.cshtml", eventActivityParameters);
}
现在可以使用