我在cshtml中做了一个类似下面的调用:
$(document).ready(function(){
$('.dl-dir-list').click(function(e){
console.log($(e.target).data('path'));
console.log(JSON.stringify({path: $(e.target).data('path')}));
$.ajax({
type: "POST",
url: '@Url.Action("GetFiles")',
data: JSON.stringify({path: $(e.target).data('path')}),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (response) {
console.log(response);
},
error: function () {
alert("Error while getting files");
}
});
});
});
行动方式:
[HttpPost]
public JsonResult GetFiles([FromBody]string path)
{
return Json(_fileService.GetFilesFromDirectory(path));
}
问题是路径参数始终为空。会是什么问题呢?这是在ASP.NET核心,.NET 6版本
4条答案
按热度按时间dfuffjeb1#
1.确保
$(e.target).data('path')
包含值。2.将您的代码更改为:
整个工作演示:
检视:
控制器:
shstlldc2#
像下面这样试试,
6yoyoihd3#
要将JSON数据发送到ASP.NET Core 6控制器操作,需要进行一些更改。在这里,我创建了一个示例,其中包含所需的所有更改,并通过AJAX发送测试JSON数据
1.您的控制器操作应该如下所示
我已经创建了一个示例来处理这个场景,并将其发布在GitHub https://github.com/rajabb/MvcCore6JsonUploadSample上。我希望这能解决问题。
7gcisfzg4#
你好,你从Ajax方法中删除这一行,并尝试它。内容类型:“application/json;字符集=utf-8”,
.Net核心不接受在一个方法中的“contentType”字段。