c# - ASP.NET Core MVC Ajax 调用未将参数传递给 api 控制器方法
问题描述
我正在尝试使用 ajax 调用 API 控制器方法并传递一些参数。api 方法被调用,但值在控制器方法中为 null。
使用相同的 ajax 调用,具有相同方法的另一个控制器(不是 api 控制器)接收参数值并返回结果,但我坚持将值传递给 api 控制器方法。请帮助
$(document).ready(function ()
{
$("#DropDownName").change(function ()
{
$.ajax({
type: "POST",
dataType: "text",
url: "@(Url.Action("SampleAction", "XYZController"))",
data: {
"param1": $("#DropDownName :selected").val(),
"param2": $("#input2").val(),
"param3": $("#input3").val()
},
success: function (response) {
document.getElementById("result").textContent = "Result: " + response;
},
});
});
});
API 控制器方法
[Route("api/[controller]")]
[ApiController]
public class XYZController : ControllerBase
{
[ActionName("SampleAction")]
[HttpPost]
public decimal SampleAction(string dropdownselectedvalue,decimal input2, int input3)
{
//code here - This method is getting called but getting null parameter values
}
}
解决方案
改变你的ajax,如下所示:
data: {
"dropdownselectedvalue":$("#DropDownName :selected").val(),
"input2": $("#input2").val(),
"input3": $("#input3").val(),
},
请务必添加FromForm
您的后端代码:
[Route("api/[controller]")]
[ApiController]
public class XYZController : ControllerBase
{
[ActionName("SampleAction")]
[HttpPost]
public decimal SampleAction([FromForm]string dropdownselectedvalue,
[FromForm] decimal input2, [FromForm] int input3)
{
return input2;
//code here - This method is getting called but getting null parameter values
}
}
推荐阅读
- python - Pymodbus:响应中错误的字节数
- pandas - 如何合并来自两个不同 DataFrame 的相同列
- c - 如何将未知类型的指针传递给函数?
- c - 排序最大和最小的字符串
- hive - 尝试使用 nifi 将数据插入配置单元时出错
- visual-studio-code - 贡献有条件激活的 vscode 配置
- vue.js - 尝试使用 highcharts-vue 包装器设置 xAxis 极值
- reactjs - React + Styled Components:每次渲染 setState 都会重置所有组件
- swift - 如何快速刷新所有视图控制器
- python - Hive - 在 Python UDF 中处理 NULL 输入值