Ajax 调用没有将字符串传递给控制器
Ajax call doesn't pass string to controller
我正在尝试将字符串传递给 asp.net 核心 3.1 控制器中的 IActionResult
函数。
Ajax:
$(function () {
$('#ddlUsers').change(function () {
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
method: 'POST',
data: { userId: 'test' },
contentType: 'application/json',
dataType: 'html'
}).done(function (r) {
$('#partialID').html(r);
});
});
});
C#:
[HttpPost]
public IActionResult GetUserInfoPartial(string userId)
{
return PartialView("_UserPartial", userId);
}
GetUserInfoPartial
中的断点命中,但 userId 始终为空。
我错过了什么?
你可以尝试删除'application/json',但有时会很棘手,取决于网络版本
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
method: 'POST',
data: { userId: 'test' },
success: function (r) {
$('#partialID').html(r);
});
如果运气不好还有另外两种方法
简单的方法 - 使用 Get 而不是 Post
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")'+'test',
method: 'GET',
success: function (r) {
$('#partialID').html(r);
});
动作
[HttpGet("{userId}")]
public IActionResult GetUserInfoPartial(string userId)
更难的一个,如果你想使用'application/json'内容类型
创建视图模型
public class ViewModel
{
public string UserId {get; set;}
}
ajax
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
method: 'POST',
data: JSON.stringify( { userId: 'test' }),
contentType: 'application/json',
success: function (r) {
$('#partialID').html(r);
});
动作
[HttpPost]
public IActionResult GetUserInfoPartial([FromBody] ViewModel model)
{
return PartialView("_UserPartial", model.UserId);
}
您可以删除 'application/json' 和 dataType: 'html' 然后它将正常工作。
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
方法:'POST',
数据:{ userId: 'test' },
成功:函数(r){
$('#partialID').html(r);
});
我正在尝试将字符串传递给 asp.net 核心 3.1 控制器中的 IActionResult
函数。
Ajax:
$(function () {
$('#ddlUsers').change(function () {
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
method: 'POST',
data: { userId: 'test' },
contentType: 'application/json',
dataType: 'html'
}).done(function (r) {
$('#partialID').html(r);
});
});
});
C#:
[HttpPost]
public IActionResult GetUserInfoPartial(string userId)
{
return PartialView("_UserPartial", userId);
}
GetUserInfoPartial
中的断点命中,但 userId 始终为空。
我错过了什么?
你可以尝试删除'application/json',但有时会很棘手,取决于网络版本
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
method: 'POST',
data: { userId: 'test' },
success: function (r) {
$('#partialID').html(r);
});
如果运气不好还有另外两种方法
简单的方法 - 使用 Get 而不是 Post
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")'+'test',
method: 'GET',
success: function (r) {
$('#partialID').html(r);
});
动作
[HttpGet("{userId}")]
public IActionResult GetUserInfoPartial(string userId)
更难的一个,如果你想使用'application/json'内容类型
创建视图模型
public class ViewModel
{
public string UserId {get; set;}
}
ajax
$.ajax({
url: '@Url.Action("GetUserInfoPartial", "UserInfo")',
method: 'POST',
data: JSON.stringify( { userId: 'test' }),
contentType: 'application/json',
success: function (r) {
$('#partialID').html(r);
});
动作
[HttpPost]
public IActionResult GetUserInfoPartial([FromBody] ViewModel model)
{
return PartialView("_UserPartial", model.UserId);
}
您可以删除 'application/json' 和 dataType: 'html' 然后它将正常工作。 $.ajax({ url: '@Url.Action("GetUserInfoPartial", "UserInfo")', 方法:'POST', 数据:{ userId: 'test' }, 成功:函数(r){ $('#partialID').html(r); });