首页 > 解决方案 > 表单内的多个选择列表

问题描述

我有一个这样的嵌套列表:

我希望能够选择无、一个或多个字符串、无、一个或多个图片 ID 并作为表单输入提交。

我已经尝试过的:

输入字段 + 按钮

<input type="hidden" name="strings" value="StringsInChapter"><br>
<button type="submit" value="Submit">Add</button>

但是如果有很多特征,那么有几十个按钮“添加”,视图只是被它们淹没,看起来很糟糕。

选择 + 选项

<select name="CharacteristicsIntro" multiple>
<option value="string1">"Once upon a time"</option>
<option value="string2">"Welcome"</option>
<option value="pictureId1">1</option>
<option value="pictureId6">6</option>
</select>

使用该选项会出现一个框:

在此处输入图像描述

这看起来不太好,而且视图再次被这些框淹没。此外,在这种情况下滚动非常不舒服。我希望所有内容都显示在视图上。

我的目标有点接近第二个选项,但没有带有滚动按钮​​的周围框。我想要实现的是,用户只能看到我的嵌套列表,没有按钮。用户选择多行,并且每个选择信息都保存在HttpContext.Session. 然后用户可以转到类似购物车的地方,其中所有选择都显示在表格中,单击“提交”按钮并通过邮件将信息发送到服务器。我怀疑没有 JS 就没有办法做到这一点,但仍然可能有任何关于如何以简单的方式做到这一点的建议?

下图大致代表了想要的输出:

在此处输入图像描述

因此,每个馅饼都有名称、价格、长、短描述和星期标志。用户可以选择饼图的多个特征或无特征,这些特征在用户点击时会改变颜色(其他行为场景也是可能的,这只是一个示例)并添加到会话上下文中。如果用户再次点击,颜色将恢复正常,并且该项目将从会话上下文中删除。这个想法非常接近正常的购物车行为,但没有使用复选框或按钮。

提前致谢!

标签: c#htmlasp.netrazorasp.net-core

解决方案


我不确定在简单的 HTML 中是否很容易做到这一点。绝对需要一些 JS 工作。但是,如果您使用某种语言 C# 执行此操作。在 razor(.cshtml) 中有 @Html.ListBoxFor(m => m.SelectedTags, new MultiSelectList(Model.Tags, "TagID", "Tag"), null)。否则这将对您有所帮助,这也是一个 JS 插件,用于获取数据并将其发送到 servere。https://select2.org/searching (尝试多选示例。)


推荐阅读