使用AJAX将数据发送给MVC控制器
使用AJAX将数据发送给MVC控制器
我正在尝试使用AJAX将数据发送到MVC控制器方法,但我不知道我做错了什么。
以下是AJAX调用:
$.ajax({ type: 'POST', url: invokingControllerActionUrl, data: "这只是一个简单的字符串", success: function (data) { window.location.href = link; } });
以下是控制器方法。它被调用,但参数始终为null。
public IActionResult OnPostTest([FromBody] string stringValue) { // stringValue始终为null :( }
问题:发送数据到MVC控制器使用AJAX时出现了什么问题?
原因:发送数据到MVC控制器时,控制器接收不到数据。
解决方法:更改AJAX调用的方式。将代码修改为以下形式:
$.ajax({ type: 'POST', url: invokingControllerActionUrl, // 确认变量中的路径是否正确,或者使用 .Action("OnPostTest", "InvokingController") data: {stringValue: "it is just a simple string"}, success: function (data) { window.location.href = link; } });
同时,移除控制器中的 `[FromBody]` 注解。并且最好定义请求类型为 POST,尽管这不是必须的。
[HttpPost] public IActionResult OnPostTest( string stringValue) { // stringValue 总是 null :( }
通过以上修改,可以解决发送数据到MVC控制器时接收不到数据的问题。