Wes Will Be The Best Ответов: 1

Выпадающий список Mvc работает локально, но не при публикации на сервере azure server


У меня есть представление с модальным всплывающим окном, которое содержит выпадающий список. Когда я тестирую на своем локальном сервере IIS, страница работает правильно, но когда я публикую страницу на сервере Azure, выпадающий список не заполняется.

Это контроль на мой взгляд:
<label class="control-label col-md-2">
                    Customer
                </label>
                <div class="col-md-8">
                    <select id="customer" name="customer" class="form-control">
                        <option>Customer</option>
                    </select>


Это и есть сценарий:
//Load Customer Drop Down list
    var NCustomers = []
    function LoadCustomer(element) {
    if (NCustomers.length === 0) {
    //ajax function for fetch data
    $.ajax({
    type: "GET",
    url: '/NYCHWebApp/PendingOrders/GetCustomers', // '@Url.Action("GetCustomers", "PendingOrders")',
    success: function (data) {
    NCustomers = data;
    //render customers
    renderCustomers(element);
    }
    })
    }
    else {
    //render customer to the element
    renderCustomers(element);
    }
    }

    function renderCustomers(element) {
    var $ele = $(element);
    $ele.empty();
    $ele.append($('<option />').val('0').text('Select'));
    $.each(NCustomers, function (i, val) {
    $ele.append($('<option />').val(val.CustomerName).text(val.CustomerName));
    })
    }



Это метод в контроллере:
public JsonResult GetCustomers()
        {
            List<Customer> NYHCCustomers = new List<Customer>();
            //using (MyDatabaseEntities dc = new MyDatabaseEntities())
            {
                NYHCCustomers = db.Customers.OrderBy(a => a.CustomerName).ToList();
            }
            return new JsonResult { Data = NYHCCustomers, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }


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

У меня был сценарий в файле, и я переместил его в представление, но не изменил. Проблема, по-видимому, заключается в вызове контроллера.

F-ES Sitecore

Используйте вкладку Сеть инструментов браузера (f12), чтобы убедиться, что вызов ajax выполнен, и если это так, посмотрите на результирующий код и данные, которые могут дать вам представление о том, почему метод не удался.

Richard Deeming

url: '/NYCHWebApp/PendingOrders/GetCustomers', // '@Url.Action("GetCustomers", "PendingOrders")',

Это выглядит вероятным подозреваемым. В Azure ваше приложение, вероятно, не находится по адресу /NYCHWebApp/.

Комментируемое-вне Url.Action вызов должен выдать правильный URL-адрес. Я думаю, вы прокомментировали это, когда перенесли сценарий в a .js файл. Теперь, когда вы переместили его обратно в представление, попробуйте снова раскомментировать его.
url: '@Url.Action("GetCustomers", "PendingOrders")',

Wes Will Be The Best

Вот и все. Спасибо.

1 Ответов

Рейтинг:
0

Wes Will Be The Best

Изменил значение url-адреса так, чтобы он использовал действие @Url.Action, как это было предложено Ричардом Димером выше. Это все решило.