Как получить выбранное значение из раскрывающегося списка MVC для использования внутри представления - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть приложение MVC с запущенной листовкой, я анализирую данные xml, чтобы получить пути к плиткам листовок, которые я затем отображаю в раскрывающемся списке с помощью ViewData ["value"]. Проблема в том, что я не могу понять, как получить это выбранное значение и передать его в листовку js в виде пути, а затем отобразить все. Я пробовал много разных способов получить данные выбора, но я просто снова и снова бьюсь о стену. Ниже приведен код, как я отправляю его на просмотр. Я отображаю его через @ Html .DropDownList ("layerType", ViewData ["value"] в виде списка)

        string outputPath;
        outputPath = ConfigurationManager.AppSettings.Get("outputPath");
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(outputPath + @"\log.xml");
        XmlNodeList layerType = xDoc.GetElementsByTagName("layerType");
        XmlNodeList layerPath = xDoc.GetElementsByTagName("layerPath");

        XDocument doc = XDocument.Load(outputPath + @"\log.xml");

        var count = doc.Descendants("layers")
           .Descendants("layerData")
           .Count();


        List<SelectListItem> li = new List<SelectListItem>();
        foreach (int i in Enumerable.Range(0, count))
        {
            li.Add(new SelectListItem { Text = layerPath[i].InnerText, Value = i.ToString() });
        }
        ViewData["value"] = li;
        return View(li);

Как бы получить выбранные данные и просто передать их в часть листовки внутри тегов js. Могу ли я передать его обратно в контроллер, а затем вернуться к представлению?

1 Ответ

0 голосов
/ 05 февраля 2020
@Html.DropDownList("layerType", 
    new SelectList((IEnumerable) ViewData["value"]), "Value", "Text")

В методе Post вы должны снова заполнить viewdata, чтобы избежать ошибки, если модель возвращает неверное значение

См. Ссылку ниже: MVC Как выбрать List with Model при обратной передаче, как?

Рабочий код

https://dotnetfiddle.net/2lrb2S

Получить значение при просмотре

 <script>
    var conceptName = $('#nameofyourdropdowncontrol').find(":selected").text(); 
    //code for passing value 
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...