我正在尝试向 Web API 方法发送 AJAX PATCH 请求,并让Marvin.JsonPatch识别修补对象。
到目前为止,我发送到服务器的所有内容都导致收到一个空请求。
Web API 控制器方法如下所示:
public IHttpActionResult Update(ElementType elementType,
long elementId,
[FromBody] JsonPatchDocument<TranslationMatchDiscounts> matchDiscountsPatch)
该TranslationMatchDiscounts
对象非常简单:
public class TranslationMatchDiscounts
{
public double ContextMatches { get; set; }
public long ElementId { get; set; }
public Enumerations.ElementType ElementType { get; set; }
public double ExactMatches { get; set; }
public double PerfectMatches { get; set; }
public double Repetitions { get; set; }
}
我的 jQuery AJAX 请求是这样组合的:
$.ajax({
//contentType: "application/json",
data: { "Repetitions": 0.15 },
//data: JSON.stringify({ "Repetitions": 0.15 }),
dataType: "json",
//processData: false,
method: "PATCH",
url: // my URL
});
注释掉的属性显示了我尝试过的一些东西。
控制器确实被击中,这不是问题,并且正在发送“重复”属性,但服务器端JsonPatchDocument<TranslationMatchDiscounts>
参数是......
null
如果我将contentType
房产留在原地- 没有其他所有尝试的属性/更新
使用 jQuery 的 .ajax() 发送 PATCH 请求的正确方法是什么?