如何将参数从 Ajax 请求传递到 Web API 控制器?
How to pass parameter from Ajax Request to Web API Controller?
我正在寻找将参数从 Ajax 请求传递到 Web API Controller in ASP.Net Core 就像 query string
in classic ASP .
我在下面尝试过,但没有用。
查看:
"ajax":
{
"url": "/api/APIDirectory/GetDirectoryInfo?reqPath=@ViewBag.Title"
"type": "POST",
"dataType": "JSON"
},
控制器:
[HttpPost]
public IActionResult GetDirectoryInfo(string reqPath)
{
string requestPath = reqPath;
// some code here..
}
任何人都可以建议在 asp.net 核心网络 api 中实现此目标的可用方法吗?
在查询字符串中发布数据时使用内容类型 application/x-www-form-urlencoded
$.ajax({
type: "POST",
url: "/api/APIDirectory/GetDirectoryInfo?reqPath=" + @ViewBag.Title,
contentType: "application/x-www-form-urlencoded"
});
此外,请确保 ajax 语法正确(我在示例中使用 jQuery)并且字符串中不包含 @ViewBag。
然后在控制器中添加[FromUri]参数以确保绑定从uri读取
[HttpPost]
public IActionResult GetDirectoryInfo([FromUri]string reqPath)
{
string requestPath = reqPath;
// some code here..
}
"ajax":
{
"url": "/api/APIDirectory/GetDirectoryInfo"
"type": "POST",
"dataType": "JSON",
"data": {"reqPath":"@ViewBag.Title"}
}
已编辑:
如果我们使用查询字符串,我们可以使用类型作为 GET。
但是我们使用的是POST方法,所以我们需要通过参数"data"传递数据。
我正在寻找将参数从 Ajax 请求传递到 Web API Controller in ASP.Net Core 就像 query string
in classic ASP .
我在下面尝试过,但没有用。
查看:
"ajax":
{
"url": "/api/APIDirectory/GetDirectoryInfo?reqPath=@ViewBag.Title"
"type": "POST",
"dataType": "JSON"
},
控制器:
[HttpPost]
public IActionResult GetDirectoryInfo(string reqPath)
{
string requestPath = reqPath;
// some code here..
}
任何人都可以建议在 asp.net 核心网络 api 中实现此目标的可用方法吗?
在查询字符串中发布数据时使用内容类型 application/x-www-form-urlencoded
$.ajax({
type: "POST",
url: "/api/APIDirectory/GetDirectoryInfo?reqPath=" + @ViewBag.Title,
contentType: "application/x-www-form-urlencoded"
});
此外,请确保 ajax 语法正确(我在示例中使用 jQuery)并且字符串中不包含 @ViewBag。
然后在控制器中添加[FromUri]参数以确保绑定从uri读取
[HttpPost]
public IActionResult GetDirectoryInfo([FromUri]string reqPath)
{
string requestPath = reqPath;
// some code here..
}
"ajax":
{
"url": "/api/APIDirectory/GetDirectoryInfo"
"type": "POST",
"dataType": "JSON",
"data": {"reqPath":"@ViewBag.Title"}
}
已编辑: 如果我们使用查询字符串,我们可以使用类型作为 GET。
但是我们使用的是POST方法,所以我们需要通过参数"data"传递数据。