Nano Hash - криптовалюты, майнинг, программирование

Получить значение из базы данных из той же таблицы в зависимости от значения выбора dropdownlList в ASP.NET Core 5

Я пытаюсь показать идентификатор карты Стамбула в списке выбора и показать информацию, связанную с этим идентификатором, во входном html, но это не работает

"это страница Test.cshtml"

 @model Transportation.Vm.`VmIstanbul`
    
    @section Scrypt{
        <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    }
    <div class="jumbotron">
        <script type="text/javascript">
            $(document).ready(function () {
                $.ajax({
                    type: "GET",
                    url: "/Customer/Test",
                    data: "{}",
                    success: function (data) {
                        var s = '<option value="-1">Please Select a Card id</option>';
                        for (var i = 0; i < data.length; i++) {
                            s += '<option value="' + data[i].Balance + '">' + data[i].IstanbulCardId + '</option>';
                        }
                        $("#departmentsDropdown").html(s);
                    }
                });
            });
    
            function getValue() {
                var myVal = $("#departmentsDropdown").val();
                $("#show").val(myVal);
            }
    
        </script>
    </div>
    <form id="myForm" asp-controller="Customer" asp-action="Test">
        <label for="departmentsDropdown"><b>Card</b></label>
        <select class="form-control" onchange="getValue()" id="departmentsDropdown" name="departmentsDropdown"></select><br />
        <input type="text" value="" id="show" />
    </form>

это Контроллер клиентов

public IActionResult Test () {

    var data = from als in ctx.TbIstanbulCards select new { als.IstanbulCardId, als.Balance };
    return Json(data.ToList(), System.Web.Mvc.JsonRequestBehavior.AllowGet);
  
}

это класс ВМ

 public class VmIstanbul : TbIstanbulCard
    {

        public double TransportNumber { get; set; }
        public double NumberOfStops { get; set; }
        public string Vehicles { get; set; }
        public double AvailableBalance { get; set; }
        public double DeductedAmount { get; set; }

    }

Это модель Class of Istanbul Card

public partial class TbIstanbulCard
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int IstanbulCardId { get; set; }
        public decimal? Balance { get; set; }
        public int CustomerId { get; set; }
        public virtual TbCustomer Customer { get; set; }
    }

  • Привет, похоже, что вы пытаетесь изменить значения в элементе select и хотите, чтобы элементы ввода html изменялись, когда вы это делаете. Это правильно? В любом случае у вас есть 1 из 2 вариантов. Решение будет реализовано либо с помощью JS, либо с помощью действия контроллера. С действием контроллера страницу нужно будет обновить. 14.01.2021
  • не могли бы вы мне помочь и решить это мне 15.01.2021

Ответы:


1

Во-первых, если вы используете ядро ​​asp.net, не нужно использовать System.Web.Mvc.JsonRequestBehavior.AllowGet, иначе при обратной отправке будет получена ошибка 500.

Во-вторых, вы можете использовать console.log(data) в функции успеха для проверки данных обратной отправки, формат этих данных должен быть Camel Case (data[i].balance и data[i].istanbulCardId).

Наконец, вам нужно поместить все свои js в @section Scripts{}.

Вот полная рабочая демонстрация:

Вид:

@model VmIstanbul

@section Scripts{
    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $.ajax({
                type: "GET",
                url: "/Customer/Test",
                data: "{}",
                success: function (data) {
                    console.log(data);
                    var s = '<option value="-1">Please Select a Card id</option>';
                    for (var i = 0; i < data.length; i++) {
                        s += '<option value="' + data[i].balance + '">' + data[i].istanbulCardId + '</option>';
                    }
                    $("#departmentsDropdown").html(s);
                }
            });
        });

        function getValue() {
            var myVal = $("#departmentsDropdown").val();
            $("#show").val(myVal);
        }

    </script>
}
<form id="myForm" asp-controller="Customer" asp-action="Test">
    <label for="departmentsDropdown"><b>Card</b></label>
    <select class="form-control" onchange="getValue()" id="departmentsDropdown" name="departmentsDropdown"></select><br />
    <input type="text" value="" id="show" />
</form>

Контроллер:

public IActionResult Test()
{

    var data = from als in ctx.TbIstanbulCards select new { als.IstanbulCardId, als.Balance };
    return Json(data.ToList());

}

Результат:

введите описание изображения здесь

15.01.2021
  • он работает, как вы сказали, но я получил этот результат, почему он не дает мне мою форму HTML. он отображается как массив без формы 15.01.2021
  • как это [{istanbulCardId: 70421190, баланс: 111}, {istanbulCardId: 86129851, баланс: 4354}, {istanbulCardId: 393853914, баланс: 756}, {istanbulCardId: 510124891, баланс: 657}, {istanbulCardId: 709243545 8898}, {istanbulCardId: 1512774818, баланс: 654}, {istanbulCardId: 1696897042, баланс: 654}, {istanbulCardId: 1915069818, баланс: 888888}, {istanbulCardId: 1930244033, баланс: 56}, {istanbul32Card: 234}] 15.01.2021
  • Привет, @ ALAAELDIN! Вы имели в виду, что у вас все еще есть проблемы? Не могли бы вы поделиться своим сообщением об ошибке? 18.01.2021
  • Привет, @Rena, я хотел поделиться с вами проблемой в виде видео, но я не знал, как его загрузить, поэтому не могли бы вы щелкнуть (вот моя проблема) и посмотреть, пожалуйста, я сделал это как гифку, как и вы! вот моя проблема. 19.01.2021
  • Привет, @ ALAAELDIN, у меня нет доступа к твоей гифке. 20.01.2021
  • Привет, @Rena. Не могли бы вы попробовать еще раз, я дал вам доступ, пожалуйста? ! вот моя проблема 20.01.2021
  • Хорошо. У меня возникла ваша проблема. Это потому, что ваш Test.cshtml попадет в Customer/Test. Ваше представление должно войти в метод вроде: public IActionResult Test(){return View();}, чтобы вернуть представление. Затем вашему ajax в вашем представлении необходимо изменить URL-адрес запроса и изменить метод запроса, например: public IActionResult AjaxTest() { var data = from als in ctx.TbIstanbulCards select new { als.IstanbulCardId, als.Balance }; return Json(data.ToList()); }. 21.01.2021
  • К сожалению, я разочарован этой проблемой, на которую у меня ушло более 10 дней. Надеюсь, что вы мне поможете в решении этой проблемы. Я загрузил весь проект на диск и поделился им с вами, и вы можете решить проблему любым удобным для вас способом, и заранее благодарю вас за помощь ...! Вот мой проект 22.01.2021
  • Привет, @Rena, я хочу поблагодарить тебя за то, что ты все это время помогал мне. Проблема уже решена, как вы предложили 22.01.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..