使用AJAX向MVC控制器发送数据
我试图用AJAX将数据发送到MVC控制器方法,但我不知道我做错了什么 这里是AJAX调用使用AJAX向MVC控制器发送数据,ajax,asp.net-core-mvc,Ajax,Asp.net Core Mvc,我试图用AJAX将数据发送到MVC控制器方法,但我不知道我做错了什么 这里是AJAX调用 $.ajax({ type: 'POST', url: invokingControllerActionUrl, data: "it is just a simple string", success: function (data) { window.location.href = link; } }); 这里是控制器方法。它被调用,但参数始终为n
$.ajax({
type: 'POST',
url: invokingControllerActionUrl,
data: "it is just a simple string",
success: function (data) {
window.location.href = link;
}
});
这里是控制器方法。它被调用,但参数始终为null
public IActionResult OnPostTest([FromBody] string stringValue)
{
// stringValue is always null :(
}
根据从JS发送的
内容类型
,您可能需要将字符串正确编码为表单值
...
data: 'stringValue="it is just a simple string"',
...
或例如JSON:
...
data: '{stringValue: "it is just a simple string"}',
...
另见
不幸的是,我还没有找到一种通过参数传递字符串未格式化数据的简单方法。根据,您可以执行以下操作:
public IActionResult OnPostTest()
{
Stream req = Request.Body;
req.Seek(0, System.IO.SeekOrigin.Begin);
string stringValue = new StreamReader(req).ReadToEnd();
...
// process your stringValue here
...
}
根据从JS发送的
内容类型
,您可能需要将字符串正确编码为表单值
...
data: 'stringValue="it is just a simple string"',
...
或例如JSON:
...
data: '{stringValue: "it is just a simple string"}',
...
另见
不幸的是,我还没有找到一种通过参数传递字符串未格式化数据的简单方法。根据,您可以执行以下操作:
public IActionResult OnPostTest()
{
Stream req = Request.Body;
req.Seek(0, System.IO.SeekOrigin.Begin);
string stringValue = new StreamReader(req).ReadToEnd();
...
// process your stringValue here
...
}
将ajax调用更改为此
$.ajax({
type: 'POST',
url: invokingControllerActionUrl, // Confirm the Path in this variable Otherwise use @Url.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 is always null :(
}
将ajax调用更改为此
$.ajax({
type: 'POST',
url: invokingControllerActionUrl, // Confirm the Path in this variable Otherwise use @Url.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 is always null :(
}