Пост на внешнем файле jquery не работает - PullRequest
0 голосов
/ 29 октября 2018

Я использую ASP.NET MVC5 с Jquery 3.3.1, раньше у меня был пост на той же странице представления внутри тега скрипта, и он отлично работает. Но я слышал, лучше иметь ваши функции во внешнем jsfile.

пост предназначен для получения простого массива данных и заполнения таблицы данных.

остальные функции в моем jsfile работают хорошо, но мой пост возвращает мне 404, не найден, я поставил точку останова на моем JsonAction, но пост даже не вызывает его.

Извините за мой плохой английский

Это моя функция POST:

var url = '@Url.Action("GetCardsData","Card")';

$.post(url).done(function (data) {
    var request = JSON.parse(data);

    var i = 0;
    var exist = false;


    request.filter(function (el) {

        el.filter(function (ul) {

            array[i] = ul;


            i++;


        })

    });

Мой JsonAction:

 public JsonResult GetCardsData(string CardNumber) {
        if (CardNumber == null) {
                            CardNumber = "";
        }
        int? Reference_ID = User.Reference_ID;
        Card c = CardRepo.GetCard(Company.Company_ID, CardNumber);

        new AdmSql();
        var cardListq = @"SELECT * FROM  [DEF].[GetCardsData] ({0}, 3)";
        var cardList = DEFRepo.ParseList(DaSql.Query(cardListq, Reference_ID));
        var data = JsonConvert.SerializeObject(cardList);


        return Json(data);
    }

это ошибка 404

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Проблема в том, что @Url.Action не будет работать во внешних файлах JS . Его можно вызвать только из файлов .cshtml или .vbhtml.

Но если вы все еще хотите сделать вызов из внешнего JS-файла, вам нужно просто передать '/Card/GetCardsData' в URL.

0 голосов
/ 29 октября 2018

Скорее всего, ваш код var url = '@Url.Action("GetCardsData","Card")'; находится в файле .js. Его там быть не должно, поскольку Razor не может его там обнаружить, поэтому ваш URL-адрес, наконец, выглядит как есть, поэтому 404 (Not Found), потому что нет @Url.Action("GetCardsData","Card"), а есть /Card/GetCardsData. Поэтому поместите эту строку внутри вашей .cshtml страницы примерно так:

<script>
    var url = '@Url.Action("GetCardsData","Card")';
</script>

Теперь ваш URL будет правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...