Ошибка 404 Javascript при вызове метода c # через ajax

#javascript #c# #jquery #ajax

#javascript #c# #jquery #ajax

Вопрос:

Я не знаю, в чем проблема, я не могу подключиться к своему веб-сервису. Он говорит об ошибке 404. Насколько я могу судить, это должно сработать. Поскольку я удалил код из * .cshtml в отдельный файл .js, он больше не работает.

Файл Javascript находится во вложенной папке «Scripts/Reps/report.ui.js «

Я хотел бы вызвать метод GetReport из файла HomeController.cs со стандартной конфигурацией.

Можете ли вы сказать мне, что я делаю не так, или я полностью не понял эту часть? Спасибо, что помогли мне

 $("#createReport").click(function () {
    var postdata = JSON.stringify(
        {
            "EvaluatedPrice": $("#estimatedPriceValue").text(),
            "Address": $("#address").text(),
            "SomeValue": "Som RandomValue To test"
        });

    try {
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetReport", "Home")',
            data: postdata,
            dataType: "json",
            success: getSuccess,
            error: getFail
        });
    }
    catch (e) {
        alert(e);
    }
});

function getSuccess(data, textStatus, jqXHR) {
    alert(data.Response);
}

function getFail(jqXHR, textStatus, errorThrown) {
    alert(jqXHR.status);
}
  
 public class HomeController : Controller
    {
[HttpPost]
        [Route("GetReport")]
        public async Task<ActionResult> GetReport(HttpContext context)
        {
            string jsonString = string.Empty;

            var data = context;

            return Json(new { data = 12 });
        }
    }
}
  

Ответ №1:

@Url.Action(«GetReport», «Home») он не будет работать в файле * .js. синтаксис razor работает только в файле *.cshtml. вам нужно сохранить этот URL-адрес в переменной.