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