Как добавить пользовательский идентификатор в коллаж bootstrap и прочитать в них позиции из текстового файла? (ASP. NET MVC) - PullRequest
1 голос
/ 21 апреля 2020

В настоящее время у меня есть программа, которая получает пользовательский ввод через текстовый ввод. Этот текстовый ввод затем переносится в файл .txt, который затем читается в разборный div в моем представлении. Каждый вход считается «категорией» (каждая категория является заголовком своего сворачиваемого заголовка), и каждой категории назначается первичный ключ, начиная с 0 и выше. Во-вторых, пользователь может ввести подкатегорию, которая затем будет отображаться внутри свертки под заголовком соответствующей категории. Как показано на рисунке ниже:

enter image description here

«Работа в университете» является входом категории,

«Назначение 1» является суб -Категория (Item) input.

Я хотел бы назначить внешний ключ для подкатегории (Item), который, очевидно, будет относиться к первичному ключу соответствующей категории. При этом я хотел бы иметь возможность вводить несколько подкатегорий (элементов) для каждой категории, при этом каждая подкатегория (элемент), очевидно, имеет один и тот же внешний ключ, если они назначены одной и той же категории.

В настоящее время мои проблемы заключаются в следующем: если у меня будет несколько категорий, откроются все складные, независимо от того, на какую категорию я нажимаю. Я предполагаю, что это как-то связано с 'foreach' l oop, который я сейчас использую. Во-вторых, я очень застрял в том, как я могу продолжать дальше. Я не могу ожидать полного решения моей проблемы, однако некоторые общие рекомендации будут с благодарностью.

В качестве примечания; Пользователь добавляет подкатегорию (элемент), щелкнув значок «плюс» на изображении выше, и пользователь переходит в отдельное представление, где он / она может затем ввести подкатегорию (элемент) для категории « Значок «плюс» связан, эта подкатегория (элемент) затем помещается в файл .txt вместе со своим собственным первичным ключом, а также внешним ключом соответствующей категории, которой она назначена.

Ниже приведен контроллер, который я использую для чтения во введенных категориях;

[HttpPost]
        public ActionResult Category(string categoryDescription)
        {
            var dataFile = Server.MapPath("~/App_Data/Category.txt");

            var numberOfLines = System.IO.File.ReadLines(dataFile).Count(); /* Records the ID (PK) of each inputted category */

            var textFileData = categoryDescription + "," + numberOfLines + Environment.NewLine;

            System.IO.File.AppendAllText(dataFile, textFileData);

            return View();
        }

Далее следует второй контроллер и представление, в котором я читаю и отображаю введенные категории;

Контроллер:

        public ActionResult Index()
        {
            var dataFile = Server.MapPath("~/App_Data/Category.txt");

            Category passCategory = new Category
            {
                result = "",
                delimiterChar = new[] { ',' },
                userData = System.IO.File.ReadAllLines(dataFile)

            };           

            return View(passCategory);

        }

Просмотр:

<div class="categoryList">

        @Model.result
        @if (Model.result == "")
        {
            foreach (String dataLine in Model.userData)
            {

                <p>
                    <a data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
                        @dataLine.Split(Model.delimiterChar)[0]
                    </a>

                    <button class="btn" onclick="location.href='@Url.Action("Items","Items")'" id="@dataLine.Split(Model.delimiterChar)[1]"><i class="fas fa-plus secondaryPlusIcon" id="@dataLine.Split(Model.delimiterChar)[1]"></i></button>
                    <button class="btn" id="@dataLine.Split(Model.delimiterChar)[1]"><i class="far fa-edit secondaryEditIcon" id="@dataLine.Split(Model.delimiterChar)[1]"></i></button>
                    <button class="btn" id="@dataLine.Split(Model.delimiterChar)[1]"><i class="far fa-trash-alt secondaryDeleteIcon" id="@dataLine.Split(Model.delimiterChar)[1]"></i></button>
                </p>

                <div class="collapse" id="collapseExample">
                    <div class="card card-body w-25 p-3 collapsible" id="@dataLine.Split(Model.delimiterChar)[1]">
                        <!-- This is where i wish to display the added items per each category... -->
                    </div>
                </div>

            }

        }
    </div>

Я уже создал контроллер для чтения подкатегорий (элементов) в файл .txt (следует очень похоже структура контроллера категории (Category ActionResult) ..

Я надеюсь, что смог предоставить достаточную информацию и код для понимания того, что именно я пытаюсь выполнить sh. Любой помощь будет принята с благодарностью, большое спасибо!

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