首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MVC中使用Razor传回多个选中的复选框选项

在MVC中使用Razor传回多个选中的复选框选项
EN

Stack Overflow用户
提问于 2019-08-01 23:45:40
回答 1查看 84关注 0票数 0

我正在使用ASP.NET MVC来填充一组复选框。这些复选框随用户在上一个视图中选择的内容而变化。我正在使用Razor。在视图中,我有:

代码语言:javascript
运行
复制
    @foreach (var skills in Model.SkillsAvailable)
    {
        <input name="pack" type="checkbox" value="@skills" /> @skills<br />
    }

    @Html.HiddenFor(m => m.SkillsSelected, new { @class = "hidden" })

我还有几个看起来与此几乎相同的单选单选按钮。它的功能是在更改时采用所选选项并填充HiddenFor。HiddenFor在提交时传递给控件。这没什么问题。

但对于我的checkbox,我不确定如何将多个项目发回。如果此列表填充了10项,而用户只能选择2项,我如何将它们添加到list SkillsSelected?

我的第一个直觉是,我可以使用另一个foreach循环以某种方式添加(就像选中的foreach一样,添加到列表中)。但我不知道这看起来是什么样子,谷歌搜索除了使用bools之外没有显示任何东西,如果列表每次都是相同的,这是有意义的,但如果列表根据之前的选择有5到30个选项就不是这样了。

在这一点上,我没有任何jQuery来控制这个部分,所以我没有它的代码。我的控制器可以很好地填充复选框列表,但不会处理其他任何事情。

我的模型中唯一重要的属性是这些,在必要时更改它们是没有问题的:

代码语言:javascript
运行
复制
    public List<string> SkillsAvailable { get; set; }
    public List<string> SkillsSelected { get; set; }
EN

回答 1

Stack Overflow用户

发布于 2019-08-02 01:08:11

视图(razor)中列表的诀窍是使用for循环而不是foreach。这样,您的html元素将被视为数组。下面是你的例子:

模型中的更改,将SkillsSelected属性列表作为布尔值的持有者

代码语言:javascript
运行
复制
public List<string> SkillsAvailable { get; set; }
public List<bool> SkillsSelected { get; set; }

然后,在视图上,使用for循环

代码语言:javascript
运行
复制
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    for (int i = 0; i < Model.SkillsAvailable.Count; i++)
    {
        @Html.CheckBoxFor(m => Model.SkillsSelected[i]) @Model.SkillsAvailable[i] <br />
        @Html.HiddenFor(m => Model.SkillsAvailable[i])
    }
    <input type="submit" value="Submit" />
}

作为参考,这里有一个关于如何在控制器中传递和接收模型的示例

代码语言:javascript
运行
复制
public ActionResult Index()
{
    var model = new Model1()
    {
        SkillsAvailable = new List<string>() { "Uno", "Dos", "Tres" }
    };
    return View(model);
}

[HttpPost]
public ActionResult Index(Model1 model)
{
    return View(model);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57312680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档