Muhammad Afaq Riaz Ответов: 0

AJAX вызов не работает должным образом


Я работаю с веб-проектом .net core. Я должен отправить значение из javascript в razor pageModel. Но проблема в том, что я не могу получить значение из pageModel в формате JSON. Он возвращает исходный код всей страницы cshtml. Я перепробовал все решения, которые нашел. Вот что я недавно попробовал

Что я уже пробовал:

АЯКС
$.ajax({
    type: "POST",
    url: '/index?handler=RetData',
    headers: {
        Accept: "application/json; charset=utf-8"
    },
    beforeSend: function (xhr) {
        xhr.overrideMimeType("application/json; charset=utf-8")
    },
    data: AddAntiForgeryToken({ 'oldEmail': oldEmail }),
    dataType: "json",
    success: function (retValue) {
        alert(retValue);
    },
    error: function (e) {
        var msg = "Error!" + e.message;
        alert(msg);
    }
});


индекс.cshtm.cs код:

[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult OnPostRetData([FromBody] JObject jobject)
{
    try
    {
        JObject job = new JObject();
        job.Add("Album", "Me Against The World");
        return new JsonResult(job);
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

F-ES Sitecore

Вы запрашиваете действие "индекс" в своем ajax, поэтому вы получаете html - код страницы обратно.

Muhammad Afaq Riaz

Тогда что я должен использовать?

F-ES Sitecore

Я предполагаю, что вы хотите вызвать OnPostRetData, так что это путь к этому. Если ваш js находится на представлении razor, вы можете использовать

URL-адрес: '@URL-адрес.Действий("OnPostRetData", "Controllername")',

если он находится в js-файле, то самый простой способ-это жесткий код, и он, вероятно, будет

/controllername/OnPostRetData

0 Ответов