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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    @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
代码运行次数:0
运行
AI代码解释
复制
    public List<string> SkillsAvailable { get; set; }
    public List<string> SkillsSelected { get; set; }
EN

回答 1

Stack Overflow用户

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public List<string> SkillsAvailable { get; set; }
public List<bool> SkillsSelected { get; set; }

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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
代码运行次数:0
运行
AI代码解释
复制
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

复制
相关文章
使用 jQuery 统计用户选中的复选框的个数
微信公众号平台每个用户最多可以设置三个标签,所以在管理员给用户设置标签的时候需要统计用户的标签,下面就是使用使用 jQuery 统计用户选中的复选框的个数的方法:
Denis
2023/04/15
1.3K0
ASP.NET Core 5.0 MVC中的 Razor 页面 介绍
Razor 是一个用于将基于服务器的代码嵌入到网页中的标记语法。 Razor语法由 Razor 标记、c # 和 HTML 组成。 通常包含 Razor 的文件的扩展名 cshtml
明志德道
2023/10/21
4730
ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用
在《ASP.NET MVC的Razor引擎:RazorView》介绍BuildManagerCompiledView的时候,我们谈到默认使用的ViewPageActivator使用当前注册的Depen
蒋金楠
2018/01/15
9530
ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用
jQuery限制复选框checkbox的选中次数
<div class="one"> <input type="checkbox" name="checkbox" value="A"> </div> <div class="two"> <input type="checkbox" name="checkbox" value="B"> </div> <div class="three"> <input type="checkbox" name="
明知山
2020/09/03
2.3K0
ASP.NET MVC的Razor引擎:RazorView
Razor引擎具有两个核心的类型,一个是表示View本身的类型RazorView,另一个则是获取和创建它的RazorViewEngine,我们将用两篇文章对它们分别进行剖析。Razor引擎下的View
蒋金楠
2018/01/15
1.3K0
ASP.NET MVC的Razor引擎:RazorView
ASP.NET MVC的Razor引擎:RazorViewEngine
基于Web Form引擎的WebFormViewEngine和针对Razor引擎的RazorViewEngine都是抽象类型BuildManagerViewEngine的子类,而后者又继承自VirtualPathProviderViewEngine。在这里我们仅仅对实现在RazorViewEngine中View获取的逻辑进行简单介绍。由于Razor引擎下的View通过RazorView对象来表示,而RazorView通过View文件的虚拟路径来构建,所以RazorViewEngine的View获取机制在于根
蒋金楠
2018/01/15
1.2K0
ASP.NET MVC的Razor引擎:RazorViewEngine
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
我设置两个有序序列,分别存储对应的复选框和行内容。 我的行内容是用的label标签。
小蓝枣
2020/09/22
3.6K0
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
html复选框选中与未选中触发事件的方法
今天,当制作一个不需要from表单的复选框来提交数据的小函数时,需要在复选框被选中或未选中的情况下修改一些后台数据。我想到了用js代码来监控复选框的状态,并将实时数据发送到后台。关于js代码如何监控checkbox的状态,可以参考下面的例子。
Power
2023/05/25
5K0
html复选框选中与未选中触发事件的方法
SORT命令在Redis中的实现以及多个选项时的执行顺序
SORT命令在Redis中实现了对存储在列表、集合、有序集合数据类型的元素进行排序的功能。
一凡sir
2023/10/05
6130
SORT命令在Redis中的实现以及多个选项时的执行顺序
jquery循环获取所有复选框,包括选中的,未选中的「建议收藏」
此处小编的是freemarker代码,不过html代码一样的,有了复选框后,要保证每个复选框的name是一致的。这样下面才能遍历
全栈程序员站长
2022/08/05
3K0
MVC5学习系列--Razor视图(一)
GuZhenYin
2018/01/04
1.4K0
MVC5学习系列--Razor视图(一)
asp.net mvc razor布局页中a标签的href的跳转问题
笔者做了一个文件上传系统,文件上传后,保存在wwwroot目录的file文件夹中,并把该文件的路径保存到数据库中, 如这样的一个路径保存在数据库: file/b775f487-0127-41e0-9df8-2a5f1624cd87.jpg 上传成功后,当在home控制器的index页面中的a标签中,直接这样编写 <a href="@filePath">下载</a> 页面生成后,链接是 http://localhost:53953/file/b775f487-0127-41e0
码农阿宇
2018/04/18
2.4K0
React技巧之检查复选框是否选中
原文链接:https://bobbyhadz.com/blog/react-check-if-checkbox-is-checked[1]
chuckQu
2022/08/19
1.5K0
React技巧之检查复选框是否选中
图文ASP.Net MVC Razor页面中HtmlHelper帮助程序的写法
明志德道
2023/10/21
1570
图文ASP.Net MVC  Razor页面中HtmlHelper帮助程序的写法
在ASP.NET MVC中如何应用多个相同类型的ValidationAttribute?
ASP.NET MVC采用System.ComponentModel.DataAnnotations提供的元数据验证机制对Model实施验证,我们可以在Model类型或者字段/属性上应用相应的ValidationAttribute。但是在默认情况下,对于同一个类型的ValidationAttribute特性只允许一个应用到目标元素上——即使我们将AllowMultiple属性设置为True。这篇文章的目的就是为了解决这个问题。[源代码从这里下载] 一、一个自定义ValidationAttribute:Ran
蒋金楠
2018/02/07
2.1K0
在ASP.NET MVC中如何应用多个相同类型的ValidationAttribute?
在AppCode中的razor调用HtmlHelper方法和UrlHelper方法
using System.Web.WebPages; using System.Web.Mvc;
javascript.shop
2019/09/04
2.1K0
ASP.NET MVC的Razor引擎:View编译原理
通过.cshtml或者.vbhtml文件定义的View能够被执行,必须先被编译成存在于某个程序集的类型,ASP.NET MVC采用动态编译的方式对View文件实施编译。当我们在对ASP.NET MVC进行部署的时候,需要对.cshtml或者.vbhtml文件进行打包。针对某个View的第一次访问会触发针对它的编译,一个View对应着一个类型。我们可以对.cshtml或者.vbhtml进行修改,View文件修改后的第一次访问将会导致View的再一次编译。和ASP.NET 传统的编译方式一样,针对View的编译
蒋金楠
2018/01/15
1.7K0
ASP.NET MVC的Razor引擎:View编译原理
《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
步骤1:在Visual Studio 2019中创建新的asp.net Core项目
角落的白板报
2019/05/05
3.9K0
《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
《从零开始学ASP.NET CORE MVC》:VS2017创建ASP.NET Core Web程序(三)
步骤1:在Visual Studio 2017中创建新的asp.net Core项目
角落的白板报
2019/05/05
2.8K0
《从零开始学ASP.NET CORE MVC》:VS2017创建ASP.NET Core Web程序(三)
点击加载更多

相似问题

在MVC中获取多个选中的复选框

53

选中多个复选框中的选项

52

选中MVC Razor表中的复选框选择为false

12

如何使用MVC3 Razor检测是否选中了复选框

10

在Razor MVC4中使用多个复选框获取值

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文