ASP .Net MVC List对象 如何和enum类型转换的checkbox进行转换并传给后台

shoppo0505 2019-04-29 04:23:15
数据流程情况描述:
1. 创建了一个enum类型,
2. 然后需要根据这个enum类型,在页面上用checkbox来显示出来。
3. 根据我勾选的checkbox,需要在controller中将选取的值转换成List<string>格式,
4. 每个string将存入数据库。
5. 从数据库读取多个string,存入List<string>
6. 页面根据List<string>来正确显示checkbox

注意:List<string>只是一个某一对象的一个属性。

问题1:
如何根据enum类型,在cshtml文件中创建了checkbox,大致代码如下:
@model object //是整体对象,不是enum
@foreach (var value in Enum.GetValues(typeof(enum类型)))
{
<div class="col-md-2">
这里如何写?
/*
我现在是这样写的
<input type="checkbox" id="@value" @(表达式) ? "checked='1'" : "") />
@Html.Label(value.ToString())
*/
</div>
}
问题2:
按照我的写法,我没有办法在controller中抓取到前台checkbox=true的内容。
如何才能抓取呢?
...全文
366 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2019-04-30
  • 打赏
  • 举报
回复
引用 7 楼 丰云 的回复:
[quote=引用 6 楼 shoppo0505 的回复:]
主要问题是cshtml传值到controller的问题。
我的习惯是,代码只保留有用的,无用,或者可有可无的,一律删除。

这也是我的习惯
传递的数据尽量的少,这是我的原则[/quote]

因为对于mvc也算是新人吧,前台页面之前涉及比较少。所以这个解决方案我觉得比较神奇。

揭晓答案吧,
我定义了一个moduel,里面有一个属性List<string> MyList,原先我在cshtml页面上,当保存moduel的时候,没有自己赋值MyList。
原因是因为我定义的控件名称是MyList,实际应该定义成MyList[],这样在controller中就能直接抓到值了,不需要任何其他代码。
丰云 2019-04-30
  • 打赏
  • 举报
回复
引用 6 楼 shoppo0505 的回复:
主要问题是cshtml传值到controller的问题。 我的习惯是,代码只保留有用的,无用,或者可有可无的,一律删除。
这也是我的习惯 传递的数据尽量的少,这是我的原则
shoppo0505 2019-04-30
  • 打赏
  • 举报
回复
引用 5 楼 丰云 的回复:
这种常规普通的业务处理,没有多少讲究的,只要不是做得太复杂就行了

至于是前端处理多些,还是后端处理多些,根本不重要,根据实际情况选择就好了

主要问题是cshtml传值到controller的问题。
我的习惯是,代码只保留有用的,无用,或者可有可无的,一律删除。
丰云 2019-04-30
  • 打赏
  • 举报
回复
这种常规普通的业务处理,没有多少讲究的,只要不是做得太复杂就行了 至于是前端处理多些,还是后端处理多些,根本不重要,根据实际情况选择就好了
shoppo0505 2019-04-30
  • 打赏
  • 举报
回复
引用 3 楼 stherix 的回复:
[quote=引用 2 楼 shoppo0505 的回复:]
[quote=引用 1 楼 stherix 的回复:]
可以在checkbox的点击事件里,用jquery获取每个checkbox的状态,然后ajax POST给后台,controller就可以得到所有选择的值了

问题解决了。不过不是你这种做法。
这种做法太老式了。

反正帖子也开了,谁答对了,全分送上。
[/quote]

这种方法并不老式啊,主流的前后端分离模式
当然习惯asp.net的都是想前后端全用.net的技术,但是实际上非常精通前端技术的,很难非常精通后端,这需要大量的工作时间经验
[/quote]
是的,你说的非常有道理。你说的情况也正是如此。

言归正传,对于这个问题,MVC的正确做法不需要使用额外的jquery,或者js。
因为感觉很有趣,所以分享一下。
stherix 2019-04-29
  • 打赏
  • 举报
回复
引用 2 楼 shoppo0505 的回复:
[quote=引用 1 楼 stherix 的回复:] 可以在checkbox的点击事件里,用jquery获取每个checkbox的状态,然后ajax POST给后台,controller就可以得到所有选择的值了
问题解决了。不过不是你这种做法。 这种做法太老式了。 反正帖子也开了,谁答对了,全分送上。 [/quote] 这种方法并不老式啊,主流的前后端分离模式 当然习惯asp.net的都是想前后端全用.net的技术,但是实际上非常精通前端技术的,很难非常精通后端,这需要大量的工作时间经验
shoppo0505 2019-04-29
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
可以在checkbox的点击事件里,用jquery获取每个checkbox的状态,然后ajax POST给后台,controller就可以得到所有选择的值了

问题解决了。不过不是你这种做法。
这种做法太老式了。

反正帖子也开了,谁答对了,全分送上。
stherix 2019-04-29
  • 打赏
  • 举报
回复
可以在checkbox的点击事件里,用jquery获取每个checkbox的状态,然后ajax POST给后台,controller就可以得到所有选择的值了

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧