我有一个简单的控制器方法,希望接收一个字符串参数:
public class ZTest : BaseController
{
[HttpPost]
public async Task<ActionResult> Test(string msg)
{
// BREAKPOINT msg is always null here
return Json(ModelState.ToDataSourceResult());
}
}
基本的 Ajax 请求将数据发送到控制器方法:
$.ajax({
type: 'POST',
url: '@Url.Action("Test", "ZTest")',
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ msg: "Hello World" }),
success: function (data) {
if (data.exception) {
Swal.fire("Error", data.message, "error");
}
else {
Swal.fire("Success", "message", "success");
}
}
});
为什么这个简单的例子会失败?
我在尝试解决更复杂的示例时创建了这个简单的 MRE。
我尝试过添加和删除
[HttpPost]
装饰,在 string msg
变量前面添加 [FromBody]
,并删除 Ajax 属性 dataType
和 contentType
。