【发布时间】:2020-11-05 05:41:02
【问题描述】:
为什么默认情况下 Web API 模型绑定如此复杂: 我尝试了很多组合,但它们似乎都不起作用。 这是 ajax 请求:
var dataString = JSON.stringify({
request: Request
});
var request = Request;
$.ajax({
type: "POST",
data: '='+dataString,
// contentType: 'application/x-www-form-urlencoded',
contentType: "application/json; charset=utf-8",
dataType: "json",
这是控制器:
public AccResultObject Post(string jezik, string page, string size, string sort,AccRequestViewModel model)
这是 AccRequestViewModel
public class AccRequestViewModel
{
public AccRequestObject request { get; set; }
}
这是 AccRequestObject:
public class AccRequestObject
{
public int FM { get; set; }
public int Budget { get; set; }
public string WebCatID { get; set; }
public int Distance { get; set; }
}
无论我做什么,控制器都会得到空值。
我也试过这个。这似乎很合乎逻辑:
var dataString = JSON.stringify({
request: Request
});
$.ajax({
type: "POST",
data: dataString, ...
控制器接收 AccRequestObject:
public AccResultObject Post(string jezik, string page, string size, string sort,[FromBody] AccRequestObjectmodel)
除了这个小问题,它工作得很好。值未绑定。
【问题讨论】:
-
被字符串化的“请求”的结构是什么?您也不需要在 ajax 调用的数据部分添加“=”。
-
我发现我需要在WEB API中添加'='
-
你不应该这样做,因为你在活页夹中得到空值,可能会尝试删除它:-) 请提供你试图发布的 json,因为没有它很难确定问题
标签: asp.net-web-api model-binding