Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX向MVC控制器发送数据_Ajax_Asp.net Core Mvc - Fatal编程技术网

使用AJAX向MVC控制器发送数据

使用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将数据发送到MVC控制器方法,但我不知道我做错了什么

这里是AJAX调用

$.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 :(
}