XML связывание в ядре asp.net - PullRequest
0 голосов
/ 05 ноября 2018

Я пытался отправить XML в основной метод asp.net через jquery ajax. Это мой метод управления:

[HttpPost]
public IActionResult Save([FromBody]string model)
{
     return Json(true);
}

А ниже приведен мой запрос jquery ajax:

var encoder = new mxCodec();
var node = encoder.encode(graph.getModel());
var model = mxUtils.getPrettyXml(node);
mxUtils.popup(model, true);
    $.ajax({
        url: "/Graphs/Save/",
        contentType: "text/xml; charset=utf8",
        dataType:"xml",
        data: JSON.stringify(model),
        type: "POST",
        success: function (result) {
            console.log(result);
        }
});

Это образец XML-текста:

"<mxGraphModel>\n  <root>\n    <mxCell id=\"0\"/>\n    <mxCell id=\"1\" parent=\"0\"/>\n  </root>\n</mxGraphModel>\n"

Но параметр модели всегда показывает ноль.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Для FromBody, он будет читать запрос из тела запроса, а content-type должно быть application/json, попробуйте выполнить тест с кодом ниже:

        var model = "<mxGraphModel>\n  <root>\n    <mxCell id=\"0\"/>\n    <mxCell id=\"1\" parent=\"0\"/>\n  </root>\n</mxGraphModel>\n";
    $.ajax({
        url: "https://localhost:44307/api/JsonInput/Save",
        contentType:"application/json",
        data: JSON.stringify(model),
        type: "POST",
        success: function (result) {
            console.log(result);
        }
    });
0 голосов
/ 05 ноября 2018

Ваш реквизит contentType установлен на "text / xml; charset = utf8", но формат тела запроса установлен на json с помощью "JSON.stringify (model)", попробуйте удалить JSON.stringify и повторите попытку.

...