Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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
Javascript 如何从jsfetch()向服务器获取数据?_Javascript_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

Javascript 如何从jsfetch()向服务器获取数据?

Javascript 如何从jsfetch()向服务器获取数据?,javascript,c#,asp.net,asp.net-mvc,Javascript,C#,Asp.net,Asp.net Mvc,我尝试将数据从js传输到服务器,但得到“null” 我的js: async function sort(param) { let classList = param.classList; //"DateCreate" //Ascending console.log(param.id + " " + classList[0]); let response = await fetch("/Amendment

我尝试将数据从js传输到服务器,但得到“null”

我的js:

async function sort(param) {
        let classList = param.classList;
                    //"DateCreate"     //Ascending
        console.log(param.id + " " + classList[0]);
       let response = await fetch("/Amendment/Sort", {
            method: "POST",
            body: JSON.stringify({ sortValue : param.id, sortType : classList[0]})
        });
        if (response.ok) {
            let responseHtml = await response.text();
            document.getElementsByClassName("result").innerHTML = responseHtml;
            alert("OK");
        } else {
            alert("Error HTTP: " + response.status);
        }
在浏览器中:

服务器的方法(控制器:修改):


解决方案1:

您需要使用
[FromBody]
属性,因为请求正文包含
sortValue
sortType

还可以使用
sortValue
sortType
字符串属性创建一个类,并在控制器操作方法中使用该类作为参数

解决方案2:

而不是将
sortValue
sortType
放在正文中,而是从url发送

var url = "/Amendment/Sort?sortValue=" + param.id + "&sortType=" + classList[0];
let response = await fetch(url, {
    method: "POST"
});

问题在于框架将您发布的值绑定到此操作方法的参数的方式。如果您定义一个类似以下的类:

public class SortModel
{
    public string SortValue { get; set; }
    public string SortType { get; set; }
}
然后将该类用作操作方法的唯一参数,则框架将正确绑定发布的值:

[HttpPost]
public IActionResult Sort(SortModel sortModel)
{
     // Then use 
     //   - sortModel.SortValue
     //   - sortModel.SortType
}

有关进一步的选项,您可以阅读。

是否显示
响应。ok
是否为
null
?@RhaidzsalAli我收到一条错误消息,因为我在服务器上的方法无法工作,因为它有输入参数-null我认为问题在于方法排序有多个参数。请检查这一点,特别是将多个参数传递给Web API控制器。我可以假设您拥有的控制器是ASP.NET MVC控制器,但这不是问题,您将阅读这篇文章,对于这种类型的控制器也是如此。@Christos我想这就是我要找的。谢谢。@Бццццццц非常欢迎您。
[HttpPost]
public IActionResult Sort(SortModel sortModel)
{
     // Then use 
     //   - sortModel.SortValue
     //   - sortModel.SortType
}