我正在嘗試將字串傳遞給IActionResultasp.net core 3.1 控制器中的函式。
阿賈克斯:
$(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 始終為空。我錯過了什么?
uj5u.com熱心網友回復:
您可以嘗試洗掉“應用程式/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({
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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/421448.html
標籤:
